mixi Developer Center (ミクシィ デベロッパーセンター)

mixi Connect

mixi Connect » mixi Graph API » mixi API SDK for Android™ » 初期化と認可処理

初期化と認可処理

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 = "YOUR_CONSUMER_KEY";
        config.selector = Config.GRAPH_API;

        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 メソッドをコールします。MixiContainerインスタンスを生成するためには、MixiContainerFactory.getContainer(Config config) を利用してください。Configに設定する項目は以下の通りです。

フィールド名 内容
String clientId アプリケーション登録時に発行された Consumer Key を指定します。
Int selector "Config.GRAPH_API" を指定します。

(2)終了時の処理(onDestroyなど)

適切な終了処理を行うために MixiContainer#close() を実行してください。

(3)認可結果の取得(onActivityResult)

認可ダイアログの結果を取得するために onActivityResult にて authorizeCallback() を呼び出します。

認証認可ダイアログを呼び出す

mixiアプリのAPIを利用するためには、ユーザにAPI利用のための認可を行なってもらう必要があります。そのための画面を表示するのが authorize メソッドです。

void MixiContainer#authorize(Activity activity, String[] permissions, int activityCode,
    CallbackListener listener)
activity 呼び出し元のActivityを指定します(FooActivity.thisなど)
permissions APIの利用に必要なスコープを指定します。"r_profile", "w_photo"などで、スコープについては各APIのドキュメントを参照ください。
activityCode intent先判定用のコード値
listener 認可処理完了後に呼び出すコールバッククラス

このメソッドを呼び出すことで、以下のような画面が表示されます。

SDK.png

実際のサンプルコードはこちらです。

mContainer.authorize(TestActivity.this, new String[] {"r_profile","w_voice"}, 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()

通常は、認可画面は初回のみ表示され、2回目以降はスキップすることが可能です。isAuthorizeメソッドはそのための確認処理を行います。既に認可済みであれば true が返り、未認可であれば false が返ります。

認証解除

以下のメソッドを呼び出すことで認可状態の解除を行います。なお、mixi API SDK for Android™ を利用する場合はユーザ保護の観点から、この認証解除機能を必ず実装してください。

void MixiContainer#logout(Activity activity, int activityCode, CallbackListener listener);

 

このページの上部へ