ビジネスログイン認証


ビジネスログイン(Facebookログインと一般に呼ばれる)は、ビジネスオーナーが、あなたのサイトに配置したボタンを使用することにより、あなたのプラットフォーム上の自分のビジネスを自分のFacebookプロフィールまたはInstagramプロフィールに接続するためのエントリーポイントです。

ビジネスログインは、あなたのプラットフォーム上で(通常はあなたのサイトの内部管理パネル内で)動作し、ビジネスログインフローを起動します。ビジネスオーナーは、このフローを使用して自分のFacebookプロフィールをあなたのサイト上の自分のビジネスプレゼンスに関連付け、それによりFacebook Business Extension (FBE)機能を有効にできます。

FBEインストール中に、パートナーとクライアントビジネスをつなぐビジネス代理ソリューション(OBO)が作成されます。それによりパートナーは、クライアントビジネスマネージャ管理者の認証情報(現在の方式)とは別の、パートナービジネスマネージャ管理システムユーザーの認証情報を使用することによりFBEシステムユーザーアクセストークンを取得できます。

: 認証には、ビジネスログインの代わりにビジネスアプリを代替手段として使用できます。ビジネスアプリの使用方法についてのドキュメントをご覧ください。

要件

アプリについてアプリレビューを完了して、次のアクセス許可を取得する必要がある場合があります。

  • catalog_management — アプリがカタログ機能を有効にする場合のみ。または、クライアントに代わって販売者広告を管理する場合は、ads_managementアクセス許可をリクエストできます。
  • business_creative_management - アプリがdraper APIを利用しているクリエイティブアプリの場合。

ログインフローの設定

ログインフローを設定するには、以下のオプションを確認してください:

  • URLを通じてビジネスログインを読み込む — FacebookのJavaScript SDKを使用しない場合に推奨。このオプションでは、サイト上のボタンから、ビジネスごとに動的生成されるURLにリンクすることが必要です。

  • Facebook SDKを通じてビジネスログインを読み込む — Facebook SDKには、一般的なクライアントサイドの機能が用意されています。詳しい情報に通じた開発者には、このオプションがおすすめです。同じフローを起動するためのアプローチとしては、このほうが標準化の度合いが高いからです。

URLを通じてビジネスログインを読み込む


URLを通じてビジネスログインをトリガーするには、URLを開くボタンをサイト上に配置します。

ビジネスログインURLには、次のクエリパラメーターが必要です:

フィールド 説明

client_id

型: 文字列

必須

MetaアプリID。

display

型: 文字列

必須

ビジネスログインの表示の種類: popupwindow、またはpage

redirect_uri

型: 文字列

必須

フロー完了後、FBEのリダイレクト先となるリダイレクトURI。

response_type

型: 文字列

必須

アプリに戻るリダイレクトが発生した時のビジネスログイン応答を、URLパラメーターとURLフラグメントのどちらに含めるかを決めます。

access_tokenをURLフラグメントとしてリダイレクトURIに付加することが必要な場合はtokenを、応答をURLパラメーターとして取得したい(取得したパラメーターはAPI呼び出しを使用してアクセストークンと交換する必要がある)場合はcodeを使用します。

scope

型: 文字列

必須

必要なアクセス許可またはスコープ: manage_business_extension

あるいは、使用事例に応じて、ads_managementまたはcatalog_management

クリエイティブアプリの場合、スコープにbusiness_creative_managementが含まれていることも必要です。

extras

型: 文字列

必須

フロー中にユーザーに対してどのフローおよびパラメーターが表示されるかについての情報が含まれます。これにはsetupbusiness_configなどがあります。サポートされるextraフィールドをご覧ください。

setup

型: 文字列

必須

ユニーク識別情報(external_business_id)やカタログの通貨(currency)など、販売者のFacebook設定。サポートされるsetupフィールドをご覧ください。

business_config

型: 文字列

必須

FBEワークフローを構成するためにFBEで使用されるオブジェクト。サポートされるbusiness_configフィールドをご覧ください。

ダイナミックリダイレクトURIが必要なアプリでは、ビジネスログインフロー完了後、ステートパラメーターを使用して、リダイレクトURIに動的情報を戻します。

このURLおよびすべての必須パラメーターのフォーマットの仕方の詳細については、「Facebook Business Extension APIのオブジェクトと型」でリストされているフィールドの説明をご覧ください。

下記の例では、extrasクエリパラメーターが適切にフォーマットされており、business_configオブジェクトとsetupオブジェクトの両方が指定されています。

サンプルURL

https://facebook.com/dialog/oauth?
client_id=<FB_APP_ID>
&display=page
&redirect_uri="https://partner-site.com/redirectlanding"
&response_type=token
&scope=manage_business_extension
//   alternatively use catalog_management or ads_management
//   &scope=manage_business_extension,catalog_management,ads_management
&extras={
  "setup": {
    "external_business_id": "foo-123",
    "timezone": "America/Los_Angeles",
    "currency": "USD",
    "business_vertical": "APPOINTMENTS"
  },
  "business_config": {
    "business": {
      "name": "Foo Business"
    },
    "page_cta": {
      "enabled": true,
      "cta_button_text": "Book Now",
      "cta_button_url": "https://partner-site.com/foo-business",
      "below_button_text": "Powered by FBE Partner"
    },
    "page_card": {
      "enabled": true,
      "see_all_text": "See All",
      "see_all_url": "https://partner-site.com/foo-business",
      "cta_button_text": "Book"
    },
    "ig_cta": {
      "enabled": true,
      "cta_button_text": "Book Now",
      "cta_button_url": "https://partner-site.com/foo-business"
    },
    "messenger_menu": {
      "enabled": true,
      "cta_button_text": "Book Now",
      "cta_button_url": "https://partner-site.com/foo-business"
    },
    "thread_intent": {
      "enabled": true,
      "cta_button_url": "https://partner-site.com/foo-business"
    }
  },
  "repeat": false
}

ログインフローを手動で構築するには、次のようにして、アプリダッシュボードにリダイレクトURLを入力します。

リダイレクトURLは、FBEリダイレクトのための保護メカニズムです。FBEからのリダイレクトがアプリのリダイレクトURLフィールド内のドメインと一致しない場合、フロー終了時にFBEはそのURLにリダイレクトされません。

  1. アプリダッシュボードに移動し、アプリを選択します。
  2. [製品を追加]までスクロールし、[Facebookログイン]カードで[設定]をクリックします。
  3. 左側のナビゲーションパネルで[設定]を選択します。
  4. [クライアントOAuth設定]までスクロールし、[有効なOAuthリダイレクトURI]フィールドにリダイレクトURLを入力します。

通常のFacebookログインと同じように、このフローが終了するとaccess_tokenが返されます。それを使用してピクセルID、ページID、Instagram Business IDを取得します。



Facebook SDKを通じてビジネスログインを読み込む


ステップ1. Facebook JavaScript SDKを読み込む

このSDKをダウンロードして自分プラットフォーム上でホストするか、FacebookがホストするSDKをプルダウンできます。FacebookがホストするSDKを使用することをおすすめします。

ステップ2. fbAsyncInit関数をWindowオブジェクトに添付して、SDK設定をセットアップします。

javascript SDKを読み込む前に、fbAsyncInit関数がwindowオブジェクト上に存在していることが必要です。SDKによりその関数が呼び出されて、window.fbAsyncInit()への適切な呼び出しが設定されます。

このセットアップには以下が含まれます:

  • appId:FacebookアプリID。
  • cookie:サーバーがこのセッションにアクセスするためのCookieを有効にします。
  • xfbml:このページ上のソーシャルプラグインをParseします。
  • version:グラフAPIのどのバージョンを使用するかをSDKに伝えます(本ドキュメント執筆時点ではv10.0が最新リリース)

JavaScript SDKを読み込む前に、fbAsyncInitwindowオブジェクトに添付します。

ステップ3. FB.login()関数(「ビジネスログイン」とも呼ばれる)を通じてFBEを起動します。

SDKを読み込んで適切な情報を使用して初期化した後、SDKを使用してFB.login()を読み込みます。以下は、FB.login()関数に渡す重要なパラメーターです:

  1. 応答コールバック関数
  2. scopeフィールドとextrasフィールドのためのオブジェクト
フィールド 説明

scope

必須

必要なアクセス許可またはスコープ: manage_business_extensionおよびads_managementまたはcatalog_management

extras

必須

FBEワークフロー中にユーザーに対してどのフローおよびパラメーターが表示されるかについての情報が含まれます。これには、setupbusiness_configなどがあります。

setup

必須

ユニーク識別情報(external_business_id)やカタログの通貨(currency)など、販売者のFacebook設定を定義します。サポートされるsetupフィールドをご覧ください。

business_config

必須

FBEワークフローを構成するためにFBEで使用されるオブジェクト。business_configがサポートするフィールドをご覧ください。

詳しくは、「Facebook Business Extension APIのオブジェクトと型」をご覧ください。

例:

<script>
    window.fbAsyncInit = function() {
    //2. FB JavaScript SDK configuration and setup
        FB.init({
            appId      : '<app_id>', // FB App ID
            cookie     : true,  // enable cookies to allow the server to access the session
            xfbml      : true,  // parse social plugins on this page
            version    : 'v4.0' // uses graph api version v4.0
        });
    };

    //1. Load the JavaScript SDK asynchronously
    (function(d, s, id) {
        var js, fjs = d.getElementsByTagName(s)[0];
        if (d.getElementById(id)) return;
        js = d.createElement(s); js.id = id;
        js.src = "https://connect.facebook.net/en_US/sdk.js";
        fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));

     //3. Facebook login with JavaScript SDK
    function launchFBE() {
        FB.login(function (response) {
            if (response.authResponse) {
                // returns a User Access Token with scopes requested
                const accessToken = response.authResponse.accessToken;
                const message = {
                    'success':true,
                    'access_token':accessToken,
                };
                // store access token for later  
            } else {
              console.log('User cancelled login or did not fully authorize.');
            }
        }, {
            scope: 'catalog_management,manage_business_extension',
          // refer to the extras object table for details
            extras: {
                "setup":{
                  "external_business_id":"<external_business_id>",
                  "timezone":"America\/Los_Angeles",
                  "currency":"USD",
                  "business_vertical":"ECOMMERCE"
                },
                "business_config":{
                  "business":{
                     "name":"<business_name>"
                  },
                  "ig_cta": {
                    "enabled": true,
                    "cta_button_text": "Book Now",
                    "cta_button_url": "https://partner-site.com/foo-business"
                  }
                },
                "repeat":false
            }
        });
    }
</script>

ステップ4. FBEを起動するためのボタンまたはリンクを作成します。

画面を読み込むため、ボタンを追加するか、launchFBE()を呼び出すonClick関数をリンクします:

<button onclick="launchFBE()"> Launch FBE Workflow </button>

アプリダッシュボードにリダイレクトURLを入力します。

リダイレクトURLは、FBEリダイレクトのための保護メカニズムです。FBEからのリダイレクトがアプリのリダイレクトURLフィールド内のドメインと一致しない場合、フロー終了時にFBEはそのURLにリダイレクトされません。

  1. アプリダッシュボードに移動し、アプリを選択します。
  2. [製品を追加]までスクロールし、[Facebookログイン]カードで[設定]をクリックします。
  3. 左側のナビゲーションペインで[設定]を選択します。
  4. [クライアントOAuth設定]までスクロールし、[有効なOAuthリダイレクトURI]フィールドにリダイレクトURLを入力します。

携帯電話

モバイルFBEの実装については、モバイルドキュメントをご覧ください。

詳しくはこちら