mixiアプリ » 技術仕様(RESTful API方式) » PC » コミュニティ情報を取得しよう
コミュニティ情報を取得しよう
「日記」と同様に「コミュニティ」はユーザに人気のあるサービスです。ユーザは興味や関心のあるコミュニティに参加し、共通の話題で他のユーザと様々なコミュニケーションを行っています。特に「どんなコミュニティに参加しているのか」は、ユーザの興味や関心を表す非常に大切な情報です。
mixiアプリでは、ユーザがどのようなコミュニティに参加しているかを得ることができます。
ユーザが参加しているコミュニティ一覧の取得
ユーザが参加しているコミュニティの一覧を取得するために、mixi.newFetchCommunityRequest()関数を利用します。以下のコードが、newFetchCommunityRequest()関数によるコミュニティ一覧の取得例です。
var req = opensocial.newDataRequest(); req.add(mixi.newFetchCommunityRequest(opensocial.IdSpec.PersonId.VIEWER), "communities"); req.send(function(data) { var communities = data.get("communities").getData(); communities.each(function(community) { var id = community.getId(); var name = community.getName(); var thumbnail = community.getField(mixi.Community.Field.THUMBNAIL_URL); // do something... }); });
指定可能な引数
この関数を呼び出す際に、取得対象のユーザを特定するための引数を1つ指定します。現在、以下の引数を指定することが可能です。
- opensocial.IdSpec.PersonId.VIEWER
- opensocial.IdSpec.PersonId.OWNER
- 任意のユーザID
コールバック関数に渡される引数から、コミュニティの一覧を得ることができます。コミュニティの一覧はopensocial.Collectionオブジェクトに格納されていて、each()関数にて各コミュニティの情報を取得することができます。
取得可能なコミュニティの情報として、「ID、コミュニティ名、コミュニティの画像のURL」を得ることが可能です。
コミュニティIDの取得
コミュニティのIDを取得する方法として、以下の2つがあります。どちらも取得結果は同じです。
- community.getId()
- community.getField(mixi.Community.Field.ID)
コミュニティ名の取得
コミュニティの名称を取得する方法として、以下の2つがあります。どちらも取得結果は同じです。
- community.getName()
- community.getField(mixi.Community.Field.TITLE)
コミュニティの画像URLの取得
コミュニティの画像のURLを取得するために、mixi.Community.Field.THUMBNAIL_URLを利用します。
- community.getField(mixi.Community.Field.THUMBNAIL_URL);
件数が多い場合のページング処理
取得対象のユーザの登録コミュニティ数がとても多かった場合、その数だけコミュニティ情報を取得することは現実的ではありません。そのため、複数回に分けてコミュニティの一覧を取得することができます。このような分割した取得を、ページングと呼びます。
ページングのために、opensocial.DataRequest.PeopleRequestFieldsクラスにて規定されているMAXおよびFIRST定数を利用することができます。以下は、その利用例です。
var params = {}; params[opensocial.DataRequest.PeopleRequestFields.MAX] = 10; params[opensocial.DataRequest.PeopleRequestFields.FIRST] = 30; var req = opensocial.newDataRequest(); req.add(mixi.newFetchCommunityRequest(opensocial.IdSpec.PersonId.VIEWER, params), "communities"); req.send(function(data) { var communities = data.get("communities").getData(); var offset = communities.getOffset(); var total = communities.getTotalSize(); var size = communities.size(); var msg = total + "件中 " + offset + " - " + (offset + size) + " 件目"; // do something... });
MAXには、1リクエストあたりの取得される最大の件数を指定します。そしてFIRSTには、コミュニティの集合の中で、何件目から取得するかを指定します。取得結果のCollectionオブジェクトからは、各種関数を使って、取得された件数や全体の件数などを得ることが可能です。これらを使用して、上記の例のようにページ処理を画面に表示するなどすればよいでしょう。
エラーコード
Community APIの呼び出し時に、いくつか結果として得られる可能性があるエラーコードがあります。これらのエラーコードは、ResponseItemオブジェクトのgetErrorCode()関数を呼び出すことによって得ることが可能です。エラーコードの種別によって、適切な処理を行ってください。
エラーコード | 発生する状況 |
---|---|
400 (BAD_REQUEST) | 認証情報が不正、取得対象IDが未指定 |
403 (FORBIDDEN) | 取得権限がない、セレクタ(@self, @friendsなど)が未指定 |
500 (INTERNAL_SERVER_ERROR) | mixi側の内部エラー |