mixiアプリ » mixiアプリGraph API方式への移行手順 » RESTful API方式からGraph API方式への移行ガイド
RESTful API方式からGraph API方式への移行ガイド
※2014年11月27日より、RESTful API方式のご提供が再開されております。このためRESTful API方式からGraph API方式への移行は必須ではありません。
RESTful API方式からGraph API方式へmixiアプリを移行するにあたり留意すべき主なポイントは次となります。
- スタートURLの指定方法
- OwnerとViewerの統一
- 起動時パラメータ
- ユーザ認可
- GraphAPI
- 各機能について(APIなど)
- ライフサイクルイベント
それぞれについて以下に記載します。
スタートURLの指定方法
RESTful API方式では、GadgetXMLを利用してコンテンツを指定していましたが、Graph API方式ではPartnerDashboardからスタートURLを登録するだけで行えます。GadgetXMLは必要ありません。
OwnerとViewerの統一
RESTful API方式においては、mixiアプリの持ち主である「Owner」と、mixiアプリを利用するユーザ「Viewer」の区別がありましたが、Graph API方式のアプリでは常にOwner=Viewerとして、事実上Ownerの概念を廃止しました。
これにより、友人情報を取得するときに考慮しなければならないパーミッションマトリクスが、よりシンプルなものとなりました。
起動時パラメータ
ユーザ情報を保持するような多くのアプリでは、opensocial_owner_idを用いてユーザを識別します。
RESTful API方式では起動時よりopensocial_owner_idがパラメータ送信されていましたが、Graph API方式においては、ユーザ認可を経なければ取得できません。取得にはr_profileスコープの認可が必要となります。
この変更にともなって、Graph API方式のアプリでは、ユーザがアプリを初期登録したときに、ユーザ認可が同時に行われるような実装が必要となってくるでしょう。
ユーザ認可処理はユーザ認可APIを用いて簡単に実装できます。次項にて記載します。
ユーザ認可
RESTful APIは、ゲーム開始時にすべてのユーザー同意をとっているため、アプリ内では特別な認可を取る必要はありませんでした。
しかし、Graph APIを利用するには、各APIごとに決められたスコープをユーザが必要に応じて認可しなければなりません。
ユーザ認可は、JavaScript APIで提供されるユーザ認可APIを用いて簡単に実装することができます。
また、基本的なユーザ情報を取得するのみであれば、ダイアログを表示することなく認可させることも可能です。
Graph API
Graph APIにはRESTful APIにはなかったさまざまなAPIが用意されています。例えば、つぶやきの投稿・取得を行えるVoice API、日記の投稿・取得を行えるDiary API、mixiチェックを行えるCheck API といったものです。
これらを用いれば、RESTful API方式のアプリでは実現できなかった、創造性と楽しさに溢れるアプリをスムーズに開発することができるでしょう。
詳細はmixi Graph APIをご参照ください。
各機能について(APIなど)
RESTful APIで提供されていた各種機能について、Graph API方式に移行した場合に実装方法の改修が必要となるものもあります。
RESTful API方式とGraph API方式の対応を以下に記します。
備考欄が ※1の機能は、Graph API方式においてJavaScript APIの利用準備を行い(モバイル除く)、必要なスコープを認可していれば、RESTful API方式と同じ形式で呼び出すことが可能です。
Graph API方式に移行しても、RESTful APIのConsumer Secretを課金APIにて継続して使用しますのでご注意ください。
PC
機能 | RESTful API方式 | Graph API方式 | 備考 |
---|---|---|---|
ユーザ情報、友人情報を扱う | 【Graph API】 ・People API |
JavaScript API および RESTful API から Graph API への移行が必要 | |
リクエスト削除 | 【RESTful API】 ・リクエスト削除API |
RESTful API から Graph API への移行が必要 | |
永続化情報を共有する | 【JavaScript API】 ・Persistence API |
【Graph API】 ・Persistence API |
JavaScript API から Graph API への移行が必要 |
フォトアルバム(取得) | 【JavaScript API】 ・Albums API |
【Graph API】 ・Photo API |
JavaScript API から Graph API への移行が必要 |
フォトアルバム(アップロード) | 【JavaScript API】 ・フォトアップロードAPI |
【Graph API】 |
※1 |
アクティビティを送信する | 【JavaScript API】 ・Activities API |
【JavaScript API】 ・アクティビティAPI |
※1 |
友人を招待する | 【JavaScript API】 ・招待API |
【JavaScript API】 ・招待API |
※1 |
コミュニティ情報を扱う | 【JavaScript API】 ・Community API |
× | |
メッセージを送信する | 【JavaScript API】 ・メッセージ送信API |
【Graph API】 |
※1 |
表示領域について調整する | 【JavaScript API】 ・表示領域調整API |
【JavaScript API】 ・表示領域調整API |
※1 |
課金 | 【JavaScript API】 ・課金API |
【JavaScript API】 ・課金API (※RESTful APIのConsumer Secret を使用) |
※1 |
モバイル
機能 | RESTful API方式 | Graph API方式 | 備考 |
---|---|---|---|
ユーザ情報、友人情報を扱う | 【Graph API】 ・People API |
RESTful API から Graph API への移行が必要 | |
永続化情報を共有する | 【RESTful API】 ・Persistence API |
【Graph API】 ・Persistence API |
RESTful API から Graph API への移行が必要 |
フォトアルバム(取得) | 【RESTful API】 ・Albums API |
【Graph API】 ・Photo API |
RESTful API から Graph API への移行が必要 |
リクエスト削除 | 【RESTful API】 ・リクエスト削除API |
【Graph API】 ・リクエスト削除API |
RESTful API から Graph API への移行が必要 |
アクティビティを送信する | 【UserFlowAPI】 ・Activity API |
【UserFlowAPI】 ・Activity API |
※1 |
フォトアルバム(アップロード) | 【UserFlowAPI】 ・Photo API |
【Graph API】 |
※1 |
友人を招待する | 【UserFlowAPI】 ・Invite API |
【UserFlowAPI】 ・Invite API |
※1 |
リクエスト | 【UserFlowAPI】 ・Invite API |
【UserFlowAPI】 ・Invite API |
※1 |
位置情報を取得 | 【UserFlowAPI】 ・Location API |
【UserFlowAPI】 ・Location API |
※1 |
メッセージを送信する | 【UserFlowAPI】 ・Message API |
【Graph API】 |
※1 |
課金 | 【UserFlowAPI】 ・課金API |
【UserFlowAPI】 ・課金API (※RESTful APIのConsumer Secret を使用) |
※1 |
スマートフォン
機能 | RESTful API方式 | Graph API方式 | 備考 |
---|---|---|---|
ユーザ情報、友人情報を扱う | 【RESTful】 ・Person & Friends API |
【Graph API】 ・People API |
RESTful API から Graph API への移行が必要 |
リクエスト削除 | 【RESTful】 ・リクエスト削除API |
【Graph API】 ・リクエスト削除API |
RESTful API から Graph API への移行が必要 |
友人を招待する | 【UserFlow API】 ・Invite API |
【JavaScript API】 ・招待API |
※1 |
アクティビティを送信する | 【UserFlow API】 ・Activity API |
【JavaScript API】 ・アクティビティAPI |
※1 |
リクエスト | 【UserFlow API】 ・リクエストAPI |
【JavaScript API】 ・リクエストAPI |
※1 |
メッセージを送信する | 【UserFlow API】 ・メッセージ送信API |
【Graph API】 |
※1 |
外部サイトへ誘導する | 【UserFlow API】 ・ExternalNavigateTo API |
【JavaScript API】 ・ExternalNavigateTo API |
※1 |
ボイス投稿 | 【UserFlow API】 ・ボイスAPI |
【Graph API】 |
※1 |
課金 | 【UserFlow API】 ・課金API |
【JavaScript API】 ・課金API (※RESTful APIのConsumer Secret を使用) |
※1 |
ライフサイクルイベント
ライフサイクルイベントについてはGraph API・RESTful API間で相違はありません。