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" }, ・・・ ], ・・・ }