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);