新浪微博(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}.cn3.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 シークレットの登録を行います。

  1. アプリケーションコンソール上で "Edit" ボタンをクリックします。

  2. "SOCIAL NETWORKS" をクリックします。

  3. "Sina (Weibo)" をクリックし新浪微博の設定画面を開きます。

  4. 新浪微博の App キーと App シークレットを設定します。

新浪微博アカウントによるログイン

新浪微博アカウントを用いて Kii Cloud にログインする例を以下に挙げます。

Swift 3:

func myRegistrationMethod(){
  // Set options to nil to indicate that SDK will handle the UI
  let options : Dictionary<String,AnyObject>? = nil

  //Login

  KiiSocialConnect.log(in: .Sina, options: options) { (retUser :KiiUser?, provider : KiiConnectorProvider, retError : Error? ) -> Void in
    if (retError != nil) {
      // Handle the error.
      return
    }
    // The user has logged in successfully
  }
}

Objective-C:

- (void)myRegistrationMethod {
  // Set options to nil to indicate that SDK will handle the UI
  NSDictionary *options = nil;

  // Login.
  [KiiSocialConnect logIn:kiiConnectorSina
                  options:options
                    block:^(KiiUser *retUser, KiiConnectorProvider provider, NSError *retError) {
    if (retError != nil) {
      // Handle the error.
      return;
    }
    // The user has logged in successfully
  }];
}

基本手順は以下のとおりです。

  1. オプションパラメーターに nil を指定します。
  2. logIn:options:block: メソッドでログイン処理を実行します。指定されたアカウントが新規の場合、ログイン処理に先立ちユーザー作成処理も同時に行われます。このメソッドはノンブロッキングのため、処理結果はコールバックで取得しています。

ログインに成功すると、ユーザーに関する情報は SDK 内部にキャッシュされます。キャッシュされた情報は currentUser メソッドで取得できます。次の例のように accessTokenDictionary: メソッドを使うと、アクセストークンや関連パラメーターが取得できます。

Swift 3:

let dict  = KiiSocialConnect.accessTokenDictionary(.Sina)! as NSDictionary

// The access token.
let accessToken = (dict.object(forKey: "oauth_token") as? String)!

// User id provided by the social network provider.
let providerUserId = (dict.object(forKey: "provider_user_id") as? String)!

// If a new Kii user is created with the logIn method.
let kiiNewUser : Bool = (dict.object(forKey: "kii_new_user") as? NSNumber)!.boolValue

Objective-C:

NSDictionary *dict = [KiiSocialConnect accessTokenDictionary:kiiConnectorSina];

// The access token.
NSString *accessToken = [dict objectForKey:@"oauth_token"];

// User id provided by the social network provider.
NSString *providerUserId = [dict objectForKey:@"provider_user_id"];

// If a new Kii user is created with the logIn method.
BOOL kiiNewUser = [dict valueForKey:@"kii_new_user"];