Unityの制限付きログイン

iOS SDK v9.0と共に、Unity SDKがアップデートされ、iOS開発者が各自のユーザーに対して制限付きログインを提供できるようになりました。要約すると、このアップデートによって、ユーザーのログイン時のIDを認証するために使われる認証トークンが、従来のFacebookログイン製品を使っている場合に利用可能なその他のグラフAPI機能と共に追加されています。

アクセス許可

制限付きログインでは、リクエストできるアクセス許可が一部のものだけに制限されます。

  • public_profile
  • email
  • gaming_profile
  • gaming_user_picture
  • user_age_range
  • user_birthday
  • user_friends
  • user_gender
  • user_hometown
  • user_link
  • user_location
  • user_messenger_contact

制限付きログインの実装

Unity SDKで制限付きログインを利用するには、LoginWithTrackingPreference機能を使ってLoginTracking設定が特定のログインリクエストに対してLIMITEDになるように指定します。さらに、開発者はUnity SDKからの応答を認証するためにオプションのnonceを含めることができます。OIDCトークンの認証については、制限付きログインのOIDCトークンの認証をご覧ください。

FB.Mobile.LoginWithTrackingPreference(LoginTracking.LIMITED, scopes, "nonce123", this.HandleResult);

プロフィールデータの取得

制限付きログインまたは従来のFacebookログインのログインフローを完了したら、開発者はUnity SDKからAuthenticationTokenを取得できるようになります。開発者は、関連するAuthenticationTokenを読み取るCurrentProfile関数を使ってProfileオブジェクトをリクエストして、ユーザーの基本プロフィール情報を取得することができます。

private void GetProfileInfo()
{
     var profile = FB.Mobile.CurrentProfile();
     if(profile != null) {
          this.userName = profile.Name;
          this.userId = profile.UserID
          this.userEmail = profile.Email;
          this.profileImageUrl = profile.ImageURL;
          this.userBirthday = profile.Birthday;
          this.userAgeRange = profile.AgeRange;
          this.userFriendIDs = profile.FriendIDs;
          this.userGender = profile.Gender;
          this.userLink = profile.LinkURL;
          this.userHometown = profile.Hometown;
          this.userLocation = profile.Location;
     }
}

現在のところ、制限付きログインと「Profile」クラスを使うことができるのはiOS SDKのみであり、その他のプラットフォームでは使えない点にご注意ください。

リファレンス

コア

名前 説明

LoginTracking

ログインリクエストでトラッキングを有効にしておくべきかどうかを示すEnum値。指定可能な値はENABLEDLIMITEDです。

AuthenticationToken

現行ユーザーによってアプリケーションに認可された認証トークン文字列を含んでいるヘルパークラス。このトークンには、ユーザーのID、名前、プロフィール写真、メールアドレス(ユーザーが認可した場合)に関するデータが含まれます。

Profile

現行ユーザーのAuthenticationTokenから基本プロフィール情報を取得するために使われるヘルパークラス。

メソッド

名前 説明

FB.Mobile.LoginWithTrackingPreference

ユーザーが選択したトラッキング設定に基づいて、リクエストされるアクセス許可に関してアプリを認証するよう求めるプロンプトを表示します。

FB.Mobile.CurrentAuthenticationToken

現行ユーザーによってアプリケーションに認可された認証トークンを返します。

FB.Mobile.CurrentProfile

現行ユーザーによってアプリケーションに認可された基本プロフィール情報を返します。

FB.Mobile.LoginWithTrackingPreference

パラメーター:

  1. LoginTracking - ENABLEDLIMITEDのどちらかを選択するEnum
  2. Scopes - このリクエストのPermissions
  3. Nonce - 応答を認証するために使われる任意の文字列
  4. 結果ハンドラー(IResult) - ログイン応答を処理するコールバック関数

結果: ユーザーログインリクエストを処理し、ユーザーセッションを処理します

FB.Mobile.CurrentAuthenticationToken

パラメーター: なし

結果: ユーザーID、ユーザー名、ユーザーのプロフィール写真、ユーザーのメールアドレス(ユーザーからアクセス許可が認可されている場合)などの基本プロフィール情報を含んだ「認証トークン」を返します。

FB.Mobile.CurrentProfile

パラメーター: なし

結果: ユーザーの基本プロフィール情報を含んだプロフィールオブジェクトを返します。このオブジェクトは、ユーザーの認証トークンから自動的に取得されます。

OIDCトークンを認証する

OIDCトークンをサーバーサイドで使う前に、Facebookの公開キーに関してトークンを認証し、nonceが自分の指定したnonceと一致していることを確認してください。