次の方法で共有


Facebook と Unity を使用して PlayFab 認証を設定する

このチュートリアルでは、Facebook と Unity を使用した PlayFab 認証について、例を使用して説明します。

要件

実装

Facebook アプリケーションの登録

まず、Facebook のデベロッパー用ポータル に移動します。

  1. [My Apps] (マイ アプリ) の上にマウスを移動します。
  2. 次の図のように、[Add a New App] (新しいアプリを追加) を選択します。

Facebook での新しいアプリの追加

新しい [Application] (アプリケーション) ポップアップが開きます。

  1. アプリケーションの名前を入力します。
  2. [Contact Email] (連絡先メール) を入力します。

注意

次の図に示すように、必ず一意アプリケーション名メール アドレスを使用してください。

Facebook の新しいアプリ ID

  1. [設定] タブに移動します。
  2. その後、[Basic] (基本) サブタブに移動します。
  3. アプリケーション ID を探します。
    • これを、参照しやすい安全な場所にコピーしてください。 後で、Facebook SDK の設定時に使用します。

Facebook のアプリ ID の保存

Facebook アクセス トークン ツールに移動します。

  1. 一覧からお客様のアプリを探します。
  2. これにユーザー トークンが割り当てられていることを確認します。

注意

ユーザー トークンが割り当てられていない場合は、画面の右側にあるボタンを使用してユーザー トークンを要求します。 新しいユーザー トークンが必要な場合にはこのページをご覧ください。 PC でのテスト中に認証が失敗した場合、トークンが期限切れになっている可能性があります。 このページを更新して、新しいユーザー トークンを取得してからテストを再実行してください。

Facebook アクセス トークン ツール

  1. [アプリケーション マネージャー] ページで、[+ Add Products] (+ 製品を追加) に移動します。
  2. [Facebook Login] (Facebook ログイン) エントリを探して、[Get Started] (開始) を選択します。

Facebook ログインの開始

[ログイン] 製品設定を含むページが表示されます。

  1. [ログイン] 製品設定のページが開いていることを確認します。
  2. [Client OAuth] (クライアント OAuth) と [Web OAuth] の両方が有効になっていることを確認します。

Facebook のログイン製品設定

Facebook SDK の設定

お客様の Unity プロジェクトを開きます。

  1. [ファイル] メニューの [Facebook] を選択します。
  2. 次に、[Edit Settings] (設定の編集) を選択します。

Facebook の Unity プロジェクト設定の編集

[Inspector] ウィンドウが表示され、現在の Facebook SDK の設定が表示されます。

  • 次の図のように、対応するフィールドにアプリケーション ID を入力します。

Facebook SDK 設定へのアプリ ID の入力

簡単な認証スクリプト

次の図のように、新しいゲーム オブジェクトを作成して、名前を PlayfabFacebookAuthExample に変更します。

新しいゲーム オブジェクトの作成

  1. PlayfabFacebookAuthExample.cs というスクリプトを作成します。
  2. 次の図に示すように、このスクリプトをゲーム オブジェクトに追加します。

スクリプト例のゲーム オブジェクトへの追加

PlayfabFacebookAuthExample.cs 内に次のコードを入力します。

// Import statements introduce all the necessary classes for this example.
using Facebook.Unity;
using PlayFab;
using PlayFab.ClientModels;
using UnityEngine;
using LoginResult = PlayFab.ClientModels.LoginResult;

public class PlayfabFacebookAuthExample : MonoBehaviour
{
    // holds the latest message to be displayed on the screen
    private string _message;

    public void Start()
    {
        SetMessage("Initializing Facebook..."); // logs the given message and displays it on the screen using OnGUI method

        // This call is required before any other calls to the Facebook API. We pass in the callback to be invoked once initialization is finished
        FB.Init(OnFacebookInitialized);  

    }

    private void OnFacebookInitialized()
    {
        SetMessage("Logging into Facebook...");

        // Once Facebook SDK is initialized, if we are logged in, we log out to demonstrate the entire authentication cycle.
        if (FB.IsLoggedIn)
            FB.LogOut();

        // We invoke basic login procedure and pass in the callback to process the result
        FB.LogInWithReadPermissions(null, OnFacebookLoggedIn);
    }

    private void OnFacebookLoggedIn(ILoginResult result)
    {
        // If result has no errors, it means we have authenticated in Facebook successfully
        if (result == null || string.IsNullOrEmpty(result.Error))
        {
            SetMessage("Facebook Auth Complete! Access Token: " + AccessToken.CurrentAccessToken.TokenString + "\nLogging into PlayFab...");

            /*
             * We proceed with making a call to PlayFab API. We pass in current Facebook AccessToken and let it create
             * and account using CreateAccount flag set to true. We also pass the callback for Success and Failure results
             */
            PlayFabClientAPI.LoginWithFacebook(new LoginWithFacebookRequest { CreateAccount = true, AccessToken = AccessToken.CurrentAccessToken.TokenString},
                OnPlayfabFacebookAuthComplete, OnPlayfabFacebookAuthFailed);
        }
        else
        {
            // If Facebook authentication failed, we stop the cycle with the message
            SetMessage("Facebook Auth Failed: " + result.Error + "\n" + result.RawResult, true);
        }
    }

    // When processing both results, we just set the message, explaining what's going on.
    private void OnPlayfabFacebookAuthComplete(LoginResult result)
    {
        SetMessage("PlayFab Facebook Auth Complete. Session ticket: " + result.SessionTicket);
    }

    private void OnPlayfabFacebookAuthFailed(PlayFabError error)
    {
        SetMessage("PlayFab Facebook Auth Failed: " + error.GenerateErrorReport(), true);
    }

    public void SetMessage(string message, bool error = false)
    {
        _message = message;
        if (error)
            Debug.LogError(_message);
        else
            Debug.Log(_message);
    }

    public void OnGUI()
    {
        var style = new GUIStyle { fontSize = 40, normal = new GUIStyleState { textColor = Color.white }, alignment = TextAnchor.MiddleCenter, wordWrap = true };
        var area = new Rect(0,0,Screen.width,Screen.height);
        GUI.Label(area, _message,style);
    }
}

テスト

エディターでのアプリケーションの実行

  1. [プレイ] を選択します。 Facebook で初期化 (および認証呼び出し) が実行されると、ゲーム ビューに Facebook の認証ダイアログボックスが表示されます。
  2. ユーザー トークンを入力します。
  3. 次の図に示すように、[Send Success] (成功の送信) を選択します。

Facebook の認証ダイアログボックスでのユーザー トークンの入力

  • コンソール出力を確認します。 次の図に示すように、デバッグ ステートメントが表示されます。
  • エラーが表示されない場合は、その認証が成功したことを意味します。

デバッグ コンソール出力

Android でのアプリケーションの実行

Android でアプリケーションを起動するには、さらに次の設定を実行する必要があります。

  • 最初に、次の例のように、Android プラットフォームが選択されていること、および一意のパッケージ ID が設定されていることを確認する必要があります。

注意

必ず一意パッケージ ID を作成してください。

Android のパッケージ ID の設定

ヒント

省略可能な手順: Open SSL をインストールして、それを PATH 環境変数に追加します。 インストールしない場合、Unity はビルド中にエラーを生成しますが、問題ありません。 このエラーによりビルドが停止したり、実行に影響したりすることはありません

次に、Facebook アプリケーション コンソールで、以下を実行します。

  1. [Basic] (基本) 設定に移動します。
  2. 次に示す例のように、[+ Add Platform] (+ プラットフォームを追加) を選択します。

Facebook アプリ コンソールでのプラットフォームの追加

  • その後、使用できるプラットフォームのリストから、[Android] を選択します。

Facebook での Android プラットフォームの選択

プラットフォーム個別の設定パネルが開きます。

  • [パッケージ ID] に入力します。
  • [Save] (保存) を選択します ([Save] (保存) はページの右下隅に隠れています)。

Android プラットフォームの設定

Android デバイスで通常どおりアプリケーションをビルドして実行します。

  • アプリケーションで、Facebook のサインイン ページが開きます。
  • サインインした後は、画面のメッセージで変更を確認します。
  • 最後に、PlayFab で認証が成功したことを示すメッセージが表示されます。 全体の手順は次の例に示すようになります。

PlayFab での Android の Facebook 認証

iOS でのアプリケーションの実行

iOS でアプリケーションを起動するには、さらに次の設定を実行する必要があります。

  • 最初に、iOS プラットフォームが選択されていることを確認する必要があります。
  • また、次の例のように、一意のバンドル ID を設定します。
  • 必ず一意パッケージ ID を作成してください。

iOS バンドル ID の設定

次に、Facebook アプリケーション コンソールで、以下を実行します。

  1. [Basic] (基本) 設定に移動します。
  2. 次に示す例のように、[+ Add Platform] (+ プラットフォームを追加) を選択します。

Facebook アプリ コンソールでのプラットフォームの追加

  • 使用できるプラットフォームのリストから、[iOS] を選択します。

Facebookでの iOS プラットフォームの選択

プラットフォーム個別の設定パネルが開きます。

  • [パッケージ ID] に入力します。
  • [Save] (保存) を選択します ([Save] (保存) はページの右下隅に隠れています)。

iOS プラットフォームの設定

  • 次に、通常どおりアプリケーションをビルドします。
  • ビルドの完了後、XCode を使用してプロジェクトを開きます。

XCode を使用して iOS プロジェクトを開く

  • [Project] (プロジェクト) を選択して [Project Settings] (プロジェクト設定) を開きます。
  • バンドル ID が一意のパッケージ ID と一致することを確認します。

iOS プロジェクトの設定: バンドル ID の確認

  • 正しいデバイスを選択していることを確認してください。

iOS プロジェクトの設定: デバイスの選択

  • 現在の ID チームを選択します。

iOS プロジェクトの設定: ID チームの選択

最後に、通常どおりアプリケーションを実行します。

  • 実行されると、アプリケーションで、Web ブラウザーを使用して Facebook にログインできます。
  • ログインすると、PlayFab 認証が呼び出され、結果がメッセージで表示されます。

PlayFab での iOS の Facebook 認証

PlayFab ゲーム マネージャーを使用した確認

ゲーム マネージャーで PlayFab タイトルを開きます。

  • ダッシュボードに移動します。
  • [PlayStream デバッガー] パネルを参照して最新のイベントを確認します。 次の例で示されるように、Facebook 認証イベントが表示されます。

PlayStream デバッガーの Facebook 認証イベント

これで、PlayFab に Facebook 認証が正常に統合されました。