mixi Connect » mixi Graph API » 技術仕様 » Updates API
Updates API
ユーザがmixiに訪れる目的、それは友人の近況を知るためです。友人がどこに行き、何を考え、そして何に心を動かされたのか、mixi.jpにはそういった友人の情報が集まってきます。それらの情報は、フィードという形でmixi.jpのトップページに一覧表示されます。Updates APIは、友人の近況であるフィードを取得するためのAPIです。ポータルサイトやスマートフォンなど、ユーザが毎日訪れるメディアにてフィードが表示されれば、ユーザは友人の近況をより身近に感じることができるようになるでしょう。Updates APIは、そのような要望に応えてくれます。
ここでは、フィードを取得するためのUpdates APIについて、その使用方法を説明します。
事前に必要なもの
Updates APIを利用するためには、以下の情報をすでに入手している必要があります。
- “r_updates”スコープについて認可されたアクセストークン
上記以外のスコープで認可されたアクセストークンを使用して、Updates APIにアクセスすることはできません。アクセストークンの入手方法については、認証認可手順のページをご覧ください。
Updates APIにて取得可能なフィード
Updates APIを利用して取得することができるフィードの種類は、以下となります。
| 種別 | 名称 | Field name |
|---|---|---|
| コンテンツ | ボイス | voice |
| 日記 | diary | |
| カレンダー | calendar | |
| レビュー | review | |
| mixiアプリ | application | |
| フォト | photo | |
| チェック | share | |
| 近況 | プロフィール情報変更 ミクコレ変更 |
profile |
これらのフィードを新しい順に取得することができます。
フィード一覧の取得
フィードの一覧を取得するために、クライアントプログラムは”https://api.mixi-platform.com/2/updates”にアクセスします。
取得要求
フィードの一覧を取得するためのURIは、以下の仕様となります。
GET https://api.mixi-platform.com/2/updates/[User-ID]/[Group-ID]
| パラメータ名 | 指定する値 |
|---|---|
| User-ID | 基準となるユーザのID(友人のユーザID、認可ユーザのIDまたは”@me”) |
| Group-ID | フィードを取得したいユーザの集合を特定するためのID(グループIDまたは”@self”、”@friends”) |
User-IDパラメータ値として、アクセストークンを認可したユーザのID(@meも可)、もしくはそのユーザの友人のIDのみ指定可能です。もし User-IDパラメータにアクセストークンを認可したユーザのIDが指定された場合、Group-IDパラメータの指定によって、フィードの取得対象のユーザの集合が異なってきます。
| User-IDパラメータ値 | 指定可能なGroup-IDパラメータ値 | 取得されるフィード |
|---|---|---|
| アクセストークンを認可したユーザのID | “@self” | User-IDパラメータにて指定したユーザのフィード一覧 |
| “@friends” |
User-IDパラメータにて指定したユーザの友人のフィード一覧 | |
| グループのID |
User-IDパラメータにて指定したユーザが登録するグループに所属しているユーザのフィード一覧 | |
| アクセストークンを認可したユーザの友人のID | “@self” | User-IDパラメータにて指定されたユーザのフィード一覧 |
Updates APIでは、取得したいフィードの種別や取得件数の制限などを行うためのパラメータをいくつかサポートしています。以下はサポートしているパラメータとその説明です。
| パラメータ名 | 説明 |
|---|---|
| fields | 取得したいフィードの種別を指定するためのパラメータ。 省略時はコンテンツに属する全てのフィードが取得対象となる。複数指定する場合は、「,」区切りでField nameを列挙する。 |
| count | APIの結果として取得したいフィードの件数の上限値を指定するためのパラメータ。 最大指定可能件数は100件。省略時は20件となる。 必ずcountで指定した件数が返却されるとは限りません。 |
| updatedSince | このパラメータ値として指定された日時よりも新しいフィードに結果を限定します。日時の書式は「yyyy-mm-ddThh:mm:ssZ」や「yyyy-mm-ddThh:mm:ss+09:00」となります(詳しくは[XSdateTime]を参照、URIエスケープが必要)。 |
| device | mixi 上のページを指すURIについて、PC向けのページを指定する場合 “pc” を、モバイル向けのページを指定する場合 “mobile” を指定してください。省略された場合は “pc” が指定されたものとみなします。また、このパラメータ値によって、PCに特化した情報、あるいはモバイルに特化した情報がそれぞれ個別に取得結果に含まれる場合があります。 |
例えば、友人のフィード一覧として、mixiボイス、日記および近況に限定したフィードの一覧を上限50件として取得したい場合は、以下となります。
GET https://api.mixi-platform.com/2/updates/@me/@friends?fields=voice,diary,profile&count=50
取得結果
Updates APIの取得結果は、ActivityStreams仕様(http://activitystrea.ms/)に準拠したものとなります。正常にフィードを取得できた場合、下記のようなJSON形式の配列が返ってきます。フィードはpostedTimeで降順にソートされています。
{
"items": [
{
"id": "...",
"title": "フィードのタイトル",
"actor": {
"objectType": "person",
"id": "http://mixi.jp/redirect_friend_api.pl?puid=...",
"displayName": "ニックネーム",
"link": "http://mixi.jp/redirect_friend_api.pl?puid=...",
"image": {
"url": "http://profile.img.mixi.jp/photo/...",
"height": "180",
"width": "107"
}
},
"verb": "share",
"object": {
"objectType": "bookmark",
"postedTime": "2013-05-02T13:09:06+09:00",
"link": "http://mixi.jp/redirect_with_owner_id.pl?b=...",
"targetUrl": "...",
"numFavorites": 2,
"numComments": 0
},
"postedTime": "2013-05-02T13:09:06+09:00",
"link": "http://mixi.jp/redirect_with_owner_id.pl?b=..."
},
・・・
]
}
フィードが持つ共通属性
各フィードは共通して以下のような属性を持っています。
| フィードの属性 | 説明 |
|---|---|
| id | フィードを特定するID(パーマリンクURLです。しかしアクセスするにはlinkをご参照下さい) |
| title | フィードのタイトル |
| actor | フィードの主体となるユーザ情報(詳細は後述の「actorの内容」をご参照下さい) |
| verb | ユーザーが行ったアクション(詳細は後述の「verbの内容」をご参照下さい) |
| object | ユーザーが行ったアクションの内容(詳細は後述の「objectの内容」をご参照下さい) |
| postedTime | フィードがポストされた日時。 日時の書式は「yyyy-mm-ddThh:mm:ssZ」や「yyyy-mm-ddThh:mm:ss+09:00」となります (詳しくは[XSdateTime]をご参照下さい) |
| link | フィード内容のURL |
actorの内容
actorの内容は、Activity Base Schema仕様にあるPerson(http://activitystrea.ms/head/activity-schema.html#person)に沿っています。| actorの属性名 | 説明 |
|---|---|
| objectType | "person"が返されます |
| id | ユーザを特定するID(プロフィールページのURL) |
| displayName | ユーザのニックネーム |
| link | ユーザーのプロフィールページのURL |
| image.url | サムネイル画像のURL |
| image.height | サムネイル画像の縦幅(ピクセル) |
| image.width | サムネイル画像の横幅(ピクセル) |
verbの内容
verbの内容はフィードタイプごとに指定されます。指定内容は、Activity Base Schema仕様にあるVerbs(http://activitystrea.ms/head/activity-schema.html#verbs)に沿ったものです。| フィードタイプ | verbの内容 |
|---|---|
| ボイス、日記、カレンダー、レビュー、フォト | post |
| チェック | share |
| mixiアプリ | join |
| 近況(プロフィール情報変更、誕生日等) | update |
objectの内容
objectには次のような属性が含まれています。| objectの属性名 | 説明 | 備考 |
|---|---|---|
| objectType | Activity Base Schema仕様にて規定されたObject Typeに沿っています | 詳細は下記のフィードタイプごとの例をご参照下さい |
| link | フィード内容のURL | |
| postedTime | フィードがポストされた日時 | フォーマットはXSdateTimeをご参照下さい |
| numFavorites | イイネ!の数 | 近況のフィードには含まれません |
| numComments | コメントの数 | 近況のフィードには含まれません |
| content | フィードの本文 | ボイスのフィードのみに含まれます |
| displayName | フィードのタイトル | 日記、カレンダー、レビュー、mixiアプリ、フォト、近況のフィードに含まれます |
| image | フィードのサムネイル画像URL | レビュー及び近況のフィードに含まれます |
フィードタイプ毎にobjectが持つ属性は異なります。詳しくは、下記に示す例をご参照下さい。
ボイス
"object": {
"objectType": "status",
"content": "ボイスの本文",
"postedTime": "2013-05-06T17:43:21+09:00",
"link": "http://mixi.jp/redirect_with_owner_id.pl?b=...",
"numFavorites": 0,
"numComments": 0
}
日記
"object": {
"objectType": "article",
"displayName": "日記のタイトル",
"postedTime": "2013-04-14T21:00:13+09:00",
"link": "http://mixi.jp/redirect_with_owner_id.pl?b=...",
"numFavorites": 6,
"numComments": 2
}
カレンダー
"object": {
"objectType": "event",
"displayName": "予定のタイトル",
"postedTime": "2013-04-07T17:45:02+09:00",
"link": "http://mixi.jp/redirect_with_owner_id.pl?b=...",
"numFavorites": 3,
"numComments": 0
}
レビュー
"object": {
"objectType": "review",
"displayName": "レビューのタイトル",
"postedTime": "2013-04-21T18:22:43+09:00",
"link": "http://mixi.jp/redirect_with_owner_id.pl?b=...",
"image": "(サムネイル画像のURL)",
"numFavorites": 0,
"numComments": 0
}
mixiアプリ
"object": {
"objectType": "service",
"displayName": "アプリのタイトル",
"postedTime": "2013-05-03T19:06:32+09:00",
"link": "http://mixi.jp/run_appli.pl?id=...",
"numFavorites": 1,
"numComments": 0
}
フォト
"object": {
"objectType": "photo",
"displayName": "新しいフォト",
"postedTime": "2013-05-06T01:01:32+09:00",
"link": "http://mixi.jp/redirect_with_owner_id.pl?b=...",
"numFavorites": 3,
"numComments": 0
}
フォト(アルバム)
"object": {
"objectType": "photo-album",
"displayName": "新しいアルバム",
"postedTime": "2013-05-07T12:58:28+09:00",
"link": "http://mixi.jp/redirect_with_owner_id.pl?b=...",
"numFavorites": 0,
"numComments": 0
}
チェック
"object": {
"objectType": "bookmark",
"postedTime": "2013-05-05T12:00:03+09:00",
"link": "http://mixi.jp/redirect_with_owner_id.pl?b=...",
"targetUrl": "...(チェックしたURL)",
"numFavorites": 2,
"numComments": 0
}
近況
"object": {
"objectType": "person",
"displayName": "ニックネーム",
"postedTime": "2013-04-30T21:20:09+09:00",
"link": "http://mixi.jp/redirect_with_owner_id.pl?b=...",
"image": {
"url": "http://profile.img.mixi.jp/photo/member/...",
"height": "180",
"width": "107"
}
}
取得可能なフィード件数とその期間
Updates API で取得可能なフィードは下記の通りです。
- 取得可能な件数:100件以内まで
- 取得可能な期間:7日以内まで
ページング、表現形式
Updates APIは、ページングは未サポートとなります。サポートされる表現形式は、JSON形式およびAtom形式となります。