mixi Connect » mixi Graph API » 技術仕様 » Groups API
Groups API
mixiユーザは「グループ」と呼ばれる友人の分類を登録することができ、このグループを使って各種コンテンツの公開範囲指定などを行っています。例えば、「○○社員」「学生時代の友人」といったグループが代表例でしょう。各グループには、それぞれに属するユーザのIDが複数登録されています。各種APIでは、友人全員分のコンテンツ取得だけでなく、あるグループを指定することで、例えば「学生時代の友人のみのコンテンツ」という限定した取得を行うことが可能です。
ここでは、グループの取得・編集をするためのGroups APIについて、その使用方法を説明します。
事前に必要なもの
Groups APIを利用するためには、以下の情報をすでに入手している必要があります。
- “r_profile”または“w_profile”スコープおよびその両方について認可されたアクセストークン
上記以外のスコープで認可されたアクセストークンを使用して、Groups APIにアクセスすることはできません。アクセストークンの入手方法については、認証認可手順のページをご覧ください。
Groups APIで提供される機能とスコープ
Groups APIでは様々な機能が提供されますが、それらは大きく「参照系」「投稿系」の2つに分類されます。この分類は、そのままGroups APIを利用するためのスコープに対応します。以下に、スコープと各機能の対応を示します。
| スコープ | 機能 |
|---|---|
| r_profile | ユーザのグループ一覧を取得、ユーザのあるグループに所属するユーザ一覧を取得 |
| w_profile | 新規グループの作成、あるグループの更新、あるグループの削除 |
グループを取得
ユーザのグループ一覧を取得
ユーザが登録しているグループの一覧を取得するためのURIは以下となります。
GET https://api.mixi-platform.com/2/groups/[User-ID]
| パラメータ名 | 指定する値 |
|---|---|
| User-ID | 認可ユーザのユーザID、または"@me" |
さらに、以下のクエリパラメータをサポートしています。
| パラメータ名 | 指定する値 |
|---|---|
| fields | 指定可能な項目は「members」のみです。「members」が指定された場合、各グループに所属しているユーザも返します。 |
| sortBy | 指定可能な項目は「title」のみです。「title」が指定された場合、グループ名でソートされた結果を返します。未指定の場合、mixi.jp上の表示順にソートされます。 |
正常に取得できた場合は、ステータスコードが200で以下のような結果を得ることができます。
{
"entry" : [
{
"id" : "@topFriends",
"title" : "仲良し",
"members" : [
{
"id" : "6mpf3e7cq54yb",
"displayName" : "HOGE",
"thumbnailUrl" : "http://img.mixi.net/img/basic/common/noimage_member40.gif",
"profileUrl" : "http://mixi.jp/redirect_friend_api.pl?puid=xxxxxxxxxxxxx&client_id=xxxxxxxx"
},
・・・
]
},
{
"id" : "1",
"title" : "GROUP-59641-001",
"members" : [
{
"id" : "6mpf3e7cq54yb",
"displayName" : "FUGA",
"thumbnailUrl" : "http://img.mixi.net/img/basic/common/noimage_member40.gif",
"profileUrl" : "http://mixi.jp/redirect_friend_api.pl?puid=xxxxxxxxxxxxx&client_id=xxxxxxxx"
},
・・・
]
},
・・・
],
・・・
}
※ なおfieldsパラメータにmembersが指定されていない場合はmembers項目は含まれません。
個々のエントリに含まれる情報は、以下となります。
| 属性名 | 説明 |
|---|---|
| id | グループのID | title | グループ名 |
ユーザがグループを一つも登録していなかった場合にも、@topFriends(仲良し)は必ず結果に含まれます。
ユーザが持つあるグループを取得
グループIDを指定して特定のグループのみを取得するためのURIは以下となります。
GET https://api.mixi-platform.com/2/groups/[User-ID]/[Group-ID]
| パラメータ名 | 指定する値 |
|---|---|
| User-ID | 認可ユーザのユーザID、または"@me" |
| Group-ID | 認可ユーザが作成したグループのID、または"@topFriends" |
正常に取得できた場合は、ステータスコードが200で以下のような結果を得ることができます。
{
"id" : "1",
"title" : "GROUP-59641-001",
"members" : [
{
"id" : "6mpf3e7cq54yb",
"displayName" : "FUGA",
"thumbnailUrl" : "http://img.mixi.net/img/basic/common/noimage_member40.gif",
"profileUrl" : "http://mixi.jp/redirect_friend_api.pl?puid=xxxxxxxxxxxxx&client_id=xxxxxxxx"
},
・・・
]
}
個々のエントリに含まれる情報は、以下となります。
| 属性名 | 説明 |
|---|---|
| id | グループのID |
| title | グループ名 |
| members.id | グループに所属するユーザのID |
| members.displayName | グループに所属するユーザのニックネーム |
| members.thumbnailUrl | グループに所属するユーザがプロフィール画像として設定しているイメージのURL |
| members.profileUrl | グループに所属するユーザのプロフィールページのURL |
グループの作成
新規にグループを作成するためのURIは以下となります。
POST https://api.mixi-platform.com/2/groups/[User-ID]
| パラメータ名 | 指定する値 |
|---|---|
| User-ID | 認可ユーザのユーザID、または"@me" |
Content-Typeリクエストヘッダには"application/json"を指定し、 作成するグループは、リクエストボディとしてJSONを指定します。具体的には、以下のようなリクエストとなります。
{
"title" : "GROUP-59641-001",
"members" : [ "1gqq1j8cb76qq", ... ]
}
個々の項目に指定すべき値は、以下となります。
| パラメータ名 | 指定する値 |
|---|---|
| title | グループ名 |
| members | グループに入れる友人のユーザIDリスト |
正常に作成できた場合は、ステータスコードが200で以下のような結果を得ることができます。
{
"id" : "1",
"title" : "GROUP-59641-001",
"members" : [
{
"id" : "1gqq1j8cb76qq",
"displayName" : "FUGA",
"thumbnailUrl" : "http://img.mixi.net/img/basic/common/noimage_member40.gif",
"profileUrl" : "http://mixi.jp/redirect_friend_api.pl?puid=xxxxxxxxxxxxx&client_id=xxxxxxxx"
},
・・・
]
}
個々のエントリに含まれる情報は、以下となります。
| 属性名 | 説明 |
|---|---|
| id | グループのID |
| title | グループ名 |
| members.id | グループに所属するユーザのID |
| members.displayName | グループに所属するユーザのニックネーム |
| members.thumbnailUrl | グループに所属するユーザがプロフィール画像として設定しているイメージのURL |
| members.profileUrl | グループに所属するユーザのプロフィールページのURL |
グループの更新
作成済みグループを更新するためのURIは以下となります。
PUT https://api.mixi-platform.com/2/groups/[User-ID]/[Group-ID]
| パラメータ名 | 指定する値 |
|---|---|
| User-ID | 認可ユーザのユーザID、または"@me" |
| Group-ID | 認可ユーザが作成したグループのID、または"@topFriends" |
Content-Typeリクエストヘッダには"application/json"を指定し、 更新するグループは、リクエストボディとしてJSONを指定します。具体的には、以下のようなリクエストとなります。
{
"title" : "GROUP-59641-001",
"addMembers" : [ "6mpf3e7cq54yb", ... ],
"removeMembers" : [ "1gqq1j8cb76qq", ... ]
}
個々の項目に指定すべき値は、以下となります。
| パラメータ名 | 指定する値 |
|---|---|
| title | グループの名前 |
| addMembers | グループに追加するユーザのID一覧 |
| removeMembers | グループから削除するユーザのID一覧 |
正常に作成できた場合は、ステータスコードが200で以下のような結果を得ることができます。
{
"id" : "1",
"title" : "GROUP-59641-001",
"members" : [
{
"id" : "6mpf3e7cq54yb",
"displayName" : "FUGA",
"thumbnailUrl" : "http://img.mixi.net/img/basic/common/noimage_member40.gif",
"profileUrl" : "http://mixi.jp/redirect_friend_api.pl?puid=xxxxxxxxxxxxx&client_id=xxxxxxxx"
},
・・・
]
}
個々のエントリに含まれる情報は、以下となります。
| 属性名 | 説明 |
|---|---|
| id | グループのID |
| title | グループ名 |
| members.id | グループに所属するユーザのID |
| members.displayName | グループに所属するユーザのニックネーム |
| members.thumbnailUrl | グループに所属するユーザがプロフィール画像として設定しているイメージのURL |
| members.profileUrl | グループに所属するユーザのプロフィールページのURL |
グループの削除
作成済みグループを削除するためのURIは以下となります。
DELETE https://api.mixi-platform.com/2/groups/[User-ID]/[Group-ID]
| パラメータ名 | 指定する値 |
|---|---|
| User-ID | 認可ユーザのユーザID、または"@me" |
| Group-ID | 認可ユーザが作成したグループのID |
正常に作成できた場合は、HTTPステータスコード200を返します。
※@topFriends(仲良し)を削除することはできません。