2012年4月25日水曜日

友人一覧を取得するまでの流れ

旧方式のAPIはjavascript形式で提供されていたけど、新方式になって、URL方式APIで提供されるようになった。
mixiの公式ドキュメント読んだけど、流れが掴みにくかったので、メモしておきたい。
友人一覧はmixi Graph APIを叩くことで、情報が得られる。
以下を実施するとmixi Graph APIの他の機能(日記やメッセージの登録など)も容易にできる。

※前提
mixi Graph APIに登録が必要。
クレジットカード登録が必要だが、有料なわけではない。

プログラム的な流れ
1. JavaScript API の利用準備
JavaScript API の利用準備 << mixi Developer Center (ミクシィ デベロッパーセンター)
このとおり実装すればとりあえず、Javascript APIは動く。
htmlファイルもこのままコピペして使えばよい。

2.ユーザー認可を実装する。
ユーザー認可を実装しなければならない。
ユーザ認可について << mixi Developer Center (ミクシィ デベロッパーセンター)
友人一覧の取得の場合、mixi Graph APIの「people API」のため、スコープに"r_profile"が指定しておかなければならない。
これを実装すると、アプリ管理画面で指定したリダイレクト先に遷移する。このリダイレクトされたURLが本当のmixiアプリとなる。
(ちなみにリダイレクト先のmixiアプリでもmixi.initを実行しておいた方がよい。何してるかわからないが、とりあえずJavascript APIを使うための初期化なので。)
パラメータとして「認証コード」が渡される。

3. アクセストークン、リフレッシュトークンを取得する。
以後、mixi Graph APIを使ってアクセスする。
ユーザ認可によるリダイレクトで受け取った認証コードでアクセストークンを取得しなければならない。
認証認可手順 << mixi Developer Center (ミクシィ デベロッパーセンター)の項目「リフレッシュトークン、アクセストークンの入手」
ここから、mixiアプリから直接mixi Graph APIを叩くことはできない。(Ajaxでは、クロスドメインでセキュリティエラーになるため。)
自サイト経由で情報を取得する必要があるのでプロキシアプリケーションの実装が必要となる。
(phpとかperlなど動的サイトが作れるレンタルサーバーで問題ない。)

4.アクセストークンを使って、友人一覧を取得する。
People API << mixi Developer Center (ミクシィ デベロッパーセンター)
これで友人一覧が取得できる。

・気を付けなければならないこと
ユーザー認可で得られる認証コードの有効期限が3分
アクセストークンの有効期限は現状15分となっている。
(※アクセストークンの有効期限は取得時にパラメータ(expires_in)で受け取れるのでそちらを参照すること。)
つまり3分以内にアクセストークンを取得しなければならない。
そしてそこから15分以内に友人一覧を取得しなければならないのか?
もし15分後に日記書き込みやアクティビティ使いたい時、もう一度ユーザー認可してリダイレクト(つまりmixiアプリ初期化)するのか?
  。。。というとそういうわけではないらしい。
認証認可手順 << mixi Developer Center (ミクシィ デベロッパーセンター)「アクセストークンの再発行」を15分以内のサイクルで定期的に実施しておけば、トークンは維持されるため、mixi Graph APIを使用できる。
サーバーで定期実行するか、JSのsetTimeoutで定期的に叩くようにしておけば問題ない。

とりあえず、アクセストークンとかいろいろな値をプロキシアプリケーション内でセッション管理してるほうがラクだと感じた。mixiアプリには、アクセストークンの再発行時間だけ教えておけばいい。




0 件のコメント:

コメントを投稿