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