mixiアプリ » 技術仕様(Graph API方式) » 初期化と認可処理
初期化と認可処理
mixi API SDK for Android™ を利用したアプリケーションを実際に開発する際のプログラムについて説明します。
Activityへの記述
mixi API SDK for Android™ を利用したアプリケーションのメインActivityのサンプルコードを紹介します。
最低限これだけのコードを書けば、SDKの機能が利用可能です。
package com.example.foo; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import jp.mixi.android.sdk.*; public class TestActivity extends Activity { MixiContainer mContainer; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Config config = new Config(); config.clientId = "mixiapp_1234"; mContainer = MixiContainerFactory.getContainer(config); mContainer.init(this); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); mContainer.authorizeCallback(requestCode, resultCode, data); } @Override public void onDestroy() { mContainer.close(this); super.onDestroy(); } }
(1)起動時の処理(onCreateなど)
SDKを利用するには、MixiContainerインスタンスの init(Activity activity) メソッドをコールします。MixiContainerインスタンスを生成するためには、MixiContainerFactory.getContainer(Config config) を利用してください。Configに設定する項目は以下の通りです。
型 | フィールド名 | 内容 |
---|---|---|
String | clientId |
mixiapp_<APP_ID> 「mixiapp_1234」のように mixiapp_ + アプリケーションIDを指定します。 |
String | version | 1.0 (省略可) |
(2)終了時の処理(onDestroyなど)
MixiContainer#close() を実行してください。
(3)認可結果の取得(onActivityResult)
認可ダイアログの結果を取得するために onActivityResult にて authorizeCallback() を呼び出します。
認証認可ダイアログを呼び出す
mixi API SDK for Androidのバージョンが1.6以前と以降では指定できるスコープが異なっているので注意してください。
mixiアプリのAPIを利用するためには、ユーザにAPI利用のための認可を行なってもらう必要があります。そのための画面を表示するのが authorize メソッドです。
MixiContainer#authorize(Activity activity, String[] permissions, int activityCode, CallbackListener listener)
activity | 呼び出し元のActivityを指定します(FooActivity.thisなど) |
---|---|
permissions | スコープを指定します(ver1.5以前:mixi_appsスコープ,ver1.6以降:mixi_apps2スコープ及び、利用する mixi Graph API で必要な各スコープ) |
activityCode | intent先判定用のコード値 |
listener | 認可処理完了後に呼び出すコールバッククラス |
- ver1.6以降でver1.5以前のmixi_appsスコープと同等の動作をさせるためには、mixi_apps2,r_profile,r_photo,w_photoのスコープが必要となります。
- ver1.6以降では、mixi_appsスコープは利用できなくなっているのでご注意ください。
このメソッドを呼び出すことで、以下のような画面が表示されます。
実際のサンプルコードはこちらです。
mContainer.authorize(this, new String[] {"mixi_apps2"}, AUTHORIZE_REQUEST_CODE, new CallbackListener() { @Override public void onComplete(Bundle values) { // 正常時の処理 } @Override public void onError(ErrorInfo e) { // エラー時の処理 } @Override public void onCancel() { // ユーザキャンセル時の処理 } @Override public void onFatal(ErrorInfo e) { // 異常終了時の処理 } });
ユーザの認可結果によって、対応したCallbackメソッドが呼び出されますので、オーバーライドして適切な処理を行なってください。
エラー情報の取得
認可処理でエラーが発生した場合にはErrorInfoが返り、詳細情報を取得することが可能です。用意されているメソッドについては、以下を参照してください。
型 | メソッド名 | 内容 |
---|---|---|
String | getMessage | エラーメッセージ取得 |
int | getCode | エラーコード取得 HTTPステータスコード値が返ります |
boolean | hasException | Exceptionが発生しているかどうかの判定用 |
Exception | getException | 発生したExceptionを返します |
認可状態の確認
現在の認可状態を確認するには、以下のメソッドを利用します。
boolean MixiContainer#isAuthorized()
認証解除
以下のメソッドを呼び出すことで認可状態の解除を行います。なお、mixi API SDK for Android™ を利用する場合はユーザ保護の観点から、この認証解除機能を必ず実装してください。
void MixiContainer#logout(Activity activity, int activityCode, CallbackListener listener);