mixiアプリ » 技術仕様(Graph API方式) » APIの利用 » People API
People API
ソーシャル化をする上で最も重要な情報、それはソーシャルグラフです。あるユーザの情報と、そのユーザが誰とつながっているのか、その情報を取得することができるAPIが、People APIです。クライアントプログラムは、People APIにより取得した友人一覧を元にして、ソーシャルアプリケーションを開発することができます。多くのサービスにおいて、このAPIの利用は必須となることでしょう。
ここでは、ユーザのプロフィール情報および友人の一覧を取得するためのPeople APIについて、その使用方法を説明します。
ユーザに関する情報を取得
ユーザ自身に関する情報を取得するためには、以下のメソッドを利用します。
MixiContainer#send("/people/@me/@self", CallbackListener listener)
ユーザの友人一覧を取得
ユーザが登録している友人の一覧を取得するためには、以下のメソッドを利用します。
MixiContainer#send("/people/@me/@friends", CallbackListener listener)
第1引数に指定するエンドポイントの記述方法は、People APIの仕様に準拠します。
| パラメータ名 | 指定する値 |
|---|---|
| User-ID | 取得したいユーザのID、または"@me" |
| Group-ID | 取得したいグループのID、または"@self"、"@friends" |
友人一覧はユーザのプライベートな情報となるため、User-IDはアクセストークンを認可したユーザ本人のIDまたは"@me"のみ指定することができます。Group-IDは、取得したいユーザの集合を特定するためのIDを指定します。指定可能なIDは、以下となります。グループのIDは、Groups APIにて取得することができます。
| ID | 説明 |
|---|---|
| @self | User-IDで特定されるユーザ自身のプロフィール情報 |
| @friends | User-IDで特定されるユーザの友人として登録されたユーザのプロフィール情報一覧 |
| グループID | User-IDで特定されるユーザが登録している、あるグループに所属するユーザのプロフィール情報一覧 |
実際のサンプルコードはこちらです。
mContainer.send("/people/@me/@self", new CallbackListener() {
@Override
public void onComplete(Bundle values) {
Log.v("response", values.getString("response"));
}
@Override
public void onError(ErrorInfo e) {
// エラー時の処理
}
@Override
public void onCancel() {
// ユーザーキャンセル時の処理
}
@Override
public void onFatal(ErrorInfo e) {
// 異常終了時の処理
}
});
フィールド指定で情報を取得
People APIでは、以下のクエリパラメータをサポートしています。
| パラメータ名 | 説明 |
|---|---|
| sortBy | パラメータ値として"displayName"を指定することで、取得結果をニックネームによる並び順とすることができます。このパラメータを省略した場合は、ユーザのmember_id順となります。 |
| sortOrder | このパラメータ値として"ascending"を指定した場合は昇順、"descending"を指定した場合は降順に取得結果が並び替えされます。このパラメータを省略した場合は、昇順となります。 |
パラメータを指定する場合は以下のメソッドを利用します。
MixiContainer#send("/people/@me/@friends", Map params, CallbackListener listener)
実際のサンプルコードはこちらです。
Map params = new HashMap();
params.put("fields", "thumbnailUrl profileUrl");
params.put("sortBy", "displayName");
params.put("sortOrder", "ascending");
mContainer.send("/people/@me/@friends", params, new CallbackListener() {});
正常に取得できた場合は、コールバックの onComplete メソッドの引数valuesにresponseパラメータとして渡されてきます。values.getString("response")などして参照することで、次のようなJSON形式の結果を得ることができます。
{
"entry" : [
{
"id" : "qgjw87yg3djw",
"displayName" : "bert",
"thumbnailUrl" : "http://img.mixi.net/img/basic/common/noimage_member180.gif",
"profileUrl" : "http://mixi.jp/show_friend.pl?uid=qgjw87yg3djw"
},
・・・
],
・・・
}