新浪微博(Sina Weibo)アカウント連携
新浪微博アカウントを用いたユーザー作成・ログインは、開発者ポータル上でアプリケーションの設定を行い、コードに数行追加するだけで簡単に実現できます。
新浪微博との連携設定
新浪微博アプリケーションの作成
まずは、新浪微博アプリケーションを作成し、新浪微博の App キーと App シークレットを取得する必要があります。取得方法については 新浪微博の公式ドキュメント を参照してください。
新浪微博アプリケーション作成の際には、以下の情報が必要です。
- アプリケーション名
- アプリケーション URL
新浪微博アプリケーションの作成が完了すると、新浪微博の App キーと App シークレットが払い出されます。
次にアプリケーションの設定を行います。"授权回调页" と "取消授权回调页" は開発者ポータルにて指定したサーバー設定場所に対応する値を指定します。なお、${your-app-id} にはご利用の AppId を入力してください。
- "应用信息" > "高级信息" > "OAuth2.0 授权设置"
- "授权回调页"
- "取消授权回调页"
- アメリカ合衆国:https://${your-app-id}.us.kiiapps.com/api/apps/${your-app-id}/integration/webauth/callback
- 日本:https://${your-app-id}.jp.kiiapps.com/api/apps/${your-app-id}/integration/webauth/callback
- シンガポール:https://${your-app-id}.sg.kiiapps.com/api/apps/${your-app-id}/integration/webauth/callback
- ヨーロッパ:https://${your-app-id}.eu.kiiapps.com/api/apps/${your-app-id}/integration/webauth/callback
Kii アプリケーションの設定
次の手順に従い、開発者ポータルより 新浪微博の App キーと App シークレットの登録を行います。
アプリケーションコンソール上で "Edit" ボタンをクリックします。
"SOCIAL NETWORKS" をクリックします。
"Sina (Weibo)" をクリックし新浪微博の設定画面を開きます。
新浪微博の App キーと App シークレットを設定します。
次に新浪微博認証の際に SDK 内で使用している Activity を利用可能にするために AndroidManifest.xml
の application タグ配下に以下の内容を追加します。
<activity
android:name="com.kii.cloud.storage.social.connector.KiiSocialNetworkConnectorLoginActivity"
android:label="@string/app_name" />
新浪微博アカウントによるログイン
新浪微博アカウントを用いて Kii Cloud にログインする例を以下に挙げます。
Activity activity = this.getActivity();
KiiSocialConnect connect = Kii.socialConnect(SocialNetwork.SOCIALNETWORK_CONNECTOR);
Bundle options = new Bundle();
options.putParcelable(KiiSocialNetworkConnector.PROVIDER, KiiSocialNetworkConnector.Provider.SINA);
// Login.
connect.logIn(activity, options, new KiiSocialCallBack() {
@Override
public void onLoginCompleted(SocialNetwork network, KiiUser user, Exception exception) {
if (exception != null) {
// Handle the error.
return;
}
}
});
基本手順は以下のとおりです。
- 新浪微博アカウントを利用したログインを制御する Activity を作成します。
- ソーシャル・ネットワークコネクターのインスタンスを
socialConnect()
メソッドで生成します。この際、SocialNetwork.SOCIALNETWORK_CONNECTOR
を引数で指定します。 - Bundle を作成し、ログインを行う対象のソーシャルネットワークを指定します。ここでは
Provider.SINA
を指定しています。 logIn()
メソッドでログイン処理を実行します。指定されたアカウントが新規の場合、ログイン処理に先立ちユーザー作成処理も同時に行われます。このメソッドはノンブロッキングのため、処理結果はコールバックで取得しています。
注意:さらに、以下の例のように 新浪微博認証を完了するためのメソッドを onActivityResult()
メソッドに追加する必要があります。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == KiiSocialNetworkConnector.REQUEST_CODE) {
Kii.socialConnect(SocialNetwork.SOCIALNETWORK_CONNECTOR).respondAuthOnActivityResult(
requestCode,
resultCode,
data);
}
}
ログインに成功すると、ユーザーに関する情報は SDK 内部にキャッシュされます。キャッシュされた情報は getCurrentUser()
メソッドで取得できます。次の例のように getAccessTokenBundle()
メソッドを使うと、アクセストークンや関連パラメーターが取得できます。
KiiSocialConnect connect = Kii.socialConnect(SocialNetwork.SOCIALNETWORK_CONNECTOR);
Bundle b = connect.getAccessTokenBundle();
// The access token.
String accessToken = b.getString("oauth_token");
// User id provided by the social network provider.
String providerUserId = b.getString("provider_user_id");
// If a new Kii user is created with the logIn method.
boolean kiiNewUser = b.getBoolean("kii_new_user");