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

mixiアプリ

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 = "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スコープは利用できなくなっているのでご注意ください。

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

25.jpg

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

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

 

このページの上部へ