Google アカウントとの連携

Google アカウントを用いたユーザー作成・ログインは、開発者ポータル上でアプリケーションの設定を行い、コードに数行追加するだけで簡単に実現できます。

Google との連携設定

Google アプリケーションの作成

まずは、Google アプリケーションを作成し、Google クライアント ID とクライアントシークレットを取得する必要があります。取得方法については Google の公式ドキュメント を参照してください。

アプリケーションを作成した後は、下記の手順に従い Google クライアント ID とクライアントシークレットの取得を行います。"Authorized JavaScript origins" と "Authorized redirect URI" は開発者ポータルにて指定したサーバー設定場所に対応する値を指定します。なお、${your-app-id} にはご利用の AppId を入力してください。

  1. "APIs & Auth" > "APIs" を選択し、"Google+ API" を有効化します。
  2. "APIs & Auth" > "Credentials" を選択し、"OAuth" > "Create new client ID" から下記の情報を入力します。
    • Application Type(Web application を指定してください)
    • Authorized JavaScript origins
      • アメリカ合衆国:https://${your-app-id}.us.kiiapps.com
      • 日本:https://${your-app-id}.jp.kiiapps.com
      • シンガポール:https://${your-app-id}.sg.kiiapps.com
      • ヨーロッパ:https://${your-app-id}.eu.kiiapps.com
    • Authorized redirect URI
      • アメリカ合衆国: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

上記の設定が完了すると、Google クライアント ID とクライアントシークレットが払い出されます。

Kii アプリケーションの設定

次の手順に従い、開発者ポータルより Google クライアント ID とクライアントシークレットの登録を行います。

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

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

  3. "Google" をクリックし Google の設定画面を開きます。

  4. Google クライアント ID とクライアントシークレットを設定します。

Google アカウントによるログイン

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

  • // Set a Google access token.
    var options = {
      access_token: __obtained_access_token__
    };
    
    // Authenticate the user to Kii Cloud with the Google access token.
    KiiSocialConnect.logIn(KiiSocialNetworkName.GOOGLEPLUS, options, {
      success: function(user, network) {
        // Do something.
      },
      failure: function(user, network, errorString) {
        // Handle the error.
      }
    });
  • // Set a Google access token.
    var options = {
      access_token: __obtained_access_token__
    };
    
    // Authenticate the user to Kii Cloud with the Google access token.
    KiiSocialConnect.logIn(KiiSocialNetworkName.GOOGLEPLUS, options).then(
      function(params) {
        var user = params[0];
        var network = params[1];
        // Do something.
      }
    ).catch(
      function(error) {
        // Handle the error.
        var errorString = error.message;
        var network = error.network;
      }
    );

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

  1. Google のアクセストークンを取得します。取得方法については Google の公式ドキュメント を参照してください。

  2. Google のアクセストークンを、optionsaccess_token パラメーターに設定します。

  3. logIn() メソッドでログイン処理を実行します。メソッドの引数に、対象のソーシャルネットワークとして KiiSocialNetworkName.GOOGLEPLUS を指定します。指定されたアカウントが新規の場合、ログイン処理に先立ちユーザー作成処理も同時に行われます。

ログインに成功すると、ユーザーに関する情報は SDK 内部にキャッシュされます。キャッシュされた情報は KiiUser.getCurrentUser() メソッドで取得できます。

Kii アカウントと Google アカウントのリンク

すでに存在する Kii Cloud ユーザーを Google アカウントとリンクできます。リンクを行うと、このユーザーは Google アカウント認証経由で Kii Cloud にログインできるようになります。

以下に、アカウントのリンク処理を行う例を示します。linkCurrentUserWithNetwork() メソッドを実行するだけでアカウントがリンクされます。

なお、この例では Google のアクセストークンを取得済みであると仮定しています。取得方法については Google の公式ドキュメント を参照してください。

  • // Assume that a user has logged in.
    
    // Set a Google access token.
    var options = {
      access_token: __obtained_access_token__
    };
    
    // Link the Google account with the currently logged-in Kii user.
    KiiSocialConnect.linkCurrentUserWithNetwork(KiiSocialNetworkName.GOOGLEPLUS, options, {
      success: function(user, network) {
        // Do something.
      },
      failure: function(user, network, errorString) {
        // Handle the error.
      }
    });
  • // Assume that a user has logged in.
    
    // Set a Google access token.
    var options = {
      access_token: __obtained_access_token__
    };
    
    // Link the Google account with the currently logged-in Kii user.
    KiiSocialConnect.linkCurrentUserWithNetwork(KiiSocialNetworkName.GOOGLEPLUS, options).then(
      function(params) {
        var user = params[0];
        var network = params[1];
        // Do something.
      }
    ).catch(
      function(error) {
        // Handle the error.
        var user = error.target;
        var errorString = error.message;
        var network = error.network;
      }
    );

Kii アカウントと Google アカウントのリンク解除

Kii Cloud のユーザーアカウントと Google アカウントのリンクを解除する例を以下に示します。unLinkCurrentUserFromNetwork() メソッドを実行するだけでアカウントのリンクが解除されます。

  • // Assume that a user has logged in.
    
    // Unlink the Google account from the currently logged-in Kii user.
    KiiSocialConnect.unLinkCurrentUserFromNetwork(KiiSocialNetworkName.GOOGLEPLUS, {
      success: function(user, network) {
        // Do something.
      },
      failure: function(user, network, errorString) {
        // Handle the error.
      }
    });
  • // Assume that a user has logged in.
    
    // Unlink the Google account from the currently logged-in Kii user.
    KiiSocialConnect.unLinkCurrentUserFromNetwork(KiiSocialNetworkName.GOOGLEPLUS).then(
      function(params) {
        var user = params[0];
        var network = params[1];
        // Do something.
      }
    ).catch(
      function(error) {
        // Handle the error.
        var user = error.target;
        var errorString = error.message;
        var network = error.network;
      }
    );