Dialogflow と Facebook Messenger の統合を使用すると、Facebook Messenger の bot を作成してエンドユーザーとやり取りできます。
仕組み
統合の仕組みは次のとおりです。
- Facebook Messenger プラットフォームを使用する Facebook アプリを作成します。
- Dialogflow の統合と Facebook アプリを構成して、相互に通信できるようにします。
- Dialogflow の統合では、Facebook Messenger API を使用してエンドユーザーにメッセージを送信します。
- Dialogflow の統合は、Facebook Messenger の Webhook として機能することで、エンドユーザーからメッセージを受信します。
設定
統合を設定するには:
Facebook アプリ開発の手順に沿って Facebook アプリを作成します。
Facebook Messenger プラットフォームを使用するように Facebook アプリを設定します。Facebook アプリの設定ドキュメントの手順に沿って次の操作を行います。
- Messenger プラットフォームを Facebook アプリに追加します。
- アプリを Facebook ページに登録します。ページ登録で
messages
とmessaging_postbacks
が有効になっていることを確認します。 - このステップでアクセス トークンが提供されます。この値をコピーします。このトークンは、Dialogflow コンソールから統合を構成するために使用されます。
- まだ Webhook の構成、または統合のテストは行わないでください。
Dialogflow コンソールから統合を構成します。
- Dialogflow CX コンソールに移動
- 左側のパネルで [Manage] タブをクリックします。
- 左側のサイドバー メニューで [Integrations] をクリックします。
- [Facebook Messenger] タイルの [Connect] ボタンをクリックします。
構成ダイアログが開きます。
App secret: [Facebook App Dashboard Basic Settings] でアプリ シークレットを入力します。
Verify token: 任意のプライベート トークンを入力できます。この値をコピーします。これは Facebook Messenger の Webhook を構成するために使用されます。
Page access token: 上記の Facebook アプリ設定時にコピーしたアクセス トークンを入力します。
Enable get started ボタン: Get started ボタン セクションをご覧ください。
Webhook URL: この値をコピーします。これは Facebook Messenger の Webhook を構成するために使用されます。
Start: クリックすると、エージェントのこの統合サービスが開始されます。
Facebook アプリのセットアップを完了してテストします。Facebook アプリの設定ドキュメントの手順に沿って次の操作を行います。
- アプリの Facebook の Webhook を構成します。上記でコピーした [Webhook URL] と [Verify token] の値を使用します。ページ登録で、
messages
とmessaging_postbacks
を必ず有効にしてください。 - アプリをテストします。
- アプリの Facebook の Webhook を構成します。上記でコピーした [Webhook URL] と [Verify token] の値を使用します。ページ登録で、
イベント
この統合によって、次のイベントが呼び出されます。カスタム イベント ハンドラを作成して、イベントがトリガーされたときのアクションを定義できます。
イベント | 説明 |
---|---|
FACEBOOK_WELCOME |
エンドユーザーが Facebook Messenger の [Get Started] ボタンをクリックしたときにトリガーされます。 |
FACEBOOK_MEDIA |
エンドユーザーのメッセージに添付ファイル(音声、画像、動画など)が含まれている場合にトリガーされます。 |
Get started ボタン
Facebook Messenger の [Get Started] ボタンを設定するには:
この統合サービスを有効にするときに、[Enable get started button] を切り替えます。
この統合サービスは、Facebook Messenger Profile API を呼び出してボタンを有効にします。
curl -X POST \ -H "Content-Type: application/json" \ -d '{"get_started": {"payload": "FACEBOOK_WELCOME"}}' \ "https://graph.facebook.com/v10.0/me/messenger_profile?access_token=${PAGE_ACCESS_TOKEN}"
FACEBOOK_WELCOME
イベントのカスタム イベント ハンドラを作成します。
ログインページをテストするには:
Facebook のページとの過去の会話を削除する(該当する場合)。
- [Get Started] ボタンは、新しい会話にのみ表示されます。
Facebook ページで新しい会話を開始します。
[Get Started] ボタンをクリックし、カスタム イベント ハンドラからのレスポンスを確認します。
いつでも [Facebook Messenger Profile API] を呼び出して [Get Started] ボタンを管理できます。これはテストに役立つ場合があります。
たとえば、次のリクエストは [Get Started] ボタンのステータスをチェックします。
curl -X GET \ "https://graph.facebook.com/v10.0/me/messenger_profile?fields=get_started&access_token=${PAGE_ACCESS_TOKEN}"
次のリクエストは、[Get Started] ボタンを無効にします。
curl -X DELETE \ -H "Content-Type: application/json" \ -d '{"fields": ["get_started"]}' \ "https://graph.facebook.com/v10.0/me/messenger_profile?access_token=${PAGE_ACCESS_TOKEN}"
リッチ レスポンス メッセージ
リッチ レスポンス メッセージは、フルフィルメントのカスタム ペイロードによってサポートされます。メッセージの形式については、Facebook Messenger Send API メッセージ オブジェクトをご覧ください。
たとえば、次のカスタム ペイロードは単純なテキスト メッセージを提供します。
{ "text": "Hello, world" }
次のカスタム ペイロードは、画像メッセージを提供します。
{ "attachment": { "type": "image", "payload": { "url": "https://example.com/test.jpg" } } }