現在、チャットメッセンジャーには確かにブームがあります。 インスタントメッセージングプラットフォームは、ボット開発プラットフォームの発売を次々に発表します。
Facebookも例外ではありませんでした。 4月12日、F8会議で、Facebookはメッセンジャー用のボットを開発するためのプラットフォームを導入しました。
この記事では、PHPでFacebook用のチャットボットを開発した経験を共有したいと思います。
一般的な情報
Facebookチャットボットは、ユーザーに代わって公開ページを持つプライベートメッセージに基づいて構築されます。
したがって、ボットを作成するには、APIにアクセスするためのアプリケーション自体と、ユーザーが通信する公開ページを作成する必要があります。
ページ作成
この点について詳しくは述べません。
公開ページを作成し、ボットのメッセンジャーに表示する方法で呼び出して、アイコンをロードします。
アプリケーションを登録および構成する
開発者アカウントでアプリケーションを登録します。
developer.facebook.com/appsにアクセスしてください
[新しいアプリケーションの追加]をクリックし、別の設定を手動で選択します。

次に、フォームに入力します。

アプリケーションを作成したら、左側のメニューで[メッセンジャー]タブを選択してクリックします。
「開始」をクリックします。
まず、ボット用に作成されたページを選択し、トークンをコピーします。 どこかに保存しておくと、さらに便利になります。

次に、着信メッセージを処理するようにwebhookを構成します。
このステップでは、ボットが配置されるサーバーに次のスクリプトをアップロードする必要があります。
<?php $verify_token = "";
$ verify_token変数にテキストを追加する必要があります。
スクリプトがサーバーにアップロードされます。 スクリプトが
domain.com/fbbotで利用できるとしましょう
FBアプリケーションの設定の[メッセンジャー]タブに戻ります。
ブロック「Webhooks」とボタン「Setup Webhooks」を探しています。 クリックしてください。
「逆URL」フィールドで、ボットのアドレスを指定します
-domain.com/fbbotSSL-証明書が必要です。 自己署名証明書は機能しません。
[マーカーの確認]フィールドで、スクリプトの$ verify_token変数で指定されたテキストを指定します。
[サブスクリプションフィールド]フィールドで、Webhookで受信する通知を選択します。
- message_deliveries-メッセージ配信通知
- メッセージ-ユーザーがボットに書き込んだメッセージ
- messaging_optins-サイトのボタンを介してメッセージを受信したときのコールバック(Send-to-Messengerプラグイン)
- messaging_postbacks-以前のボットメッセージからのボタンクリック(後で説明します)
必要なものを選択し、「確認して保存」ボタンを押します。
アプリケーションとページをリンクする
コンソールに入力します:
curl -ik -X POST "https://graph.facebook.com/v2.6/me/subscribed_apps?access_token=-token-"
-token-はページのトークンに置き換えます。
FB Messengerのメッセージタイプ
メッセージは、単なるテキストメッセージまたは構造化テキストのいずれかです。
ボタン(ボタン)
このタイプは、ユーザーの応答を必要とするメッセージの送信を目的としています。
これらは次のようになります。

ボタンには次の2つのタイプがあります。
- ボットに返信する
- インターネット上のアドレスに行く
重要なポイント:そのようなメッセージの1つには、最大3つのボタンがありますが、より多くのボタンでメッセージを送信しようとしても、受信者に届かないだけです。要素(ジェネリック)
このタイプは、商品のカードまたは同様の構造を持つ他の要素を送信するためのものです。
各要素には、タイトル、サブタイトル、説明、画像、ボタンを含めることができます。

1つのメッセージには最大10個の要素を含めることができます。 複数のアイテムがある場合、水平スクロールが表示されます。
重要なポイント:そのようなメッセージの1つには、最大3つのボタンがありますが、より多くのボタンでメッセージを送信しようとしても、受信者に届かないだけです。支払請求書
目的は名前から明らかです。
Facebookはメッセンジャーから完全なストアを作ることにしました。
支払い請求書には、商品、費用、支払い、配送先住所、割引に関する情報が含まれる場合があります。
重要なポイント:アカウント番号は一意でなければなりません。コードを書く
ボットの作成時点では、GitHubにPHP APIの実装はなかったため、PHP SDKを自分で作成する必要がありました。
composerを使用してFB Messenger APIで動作するようにPHP SDKをインストールします。
composer require "pimax/fb-messenger-php" "dev-master"
index.phpファイルを作成します。
<?php $verify_token = "";
ユーザーからのメッセージの受信に応じて、ユーザーにメッセージを送信しようとしています。
これを行うには、メッセージ受信ブロックで次を追加します。
$bot->send(new Message($message['sender']['id'], 'Hi there!'));
確認します。 ボットのメッセンジャーを見つけて、彼にメッセージを送ろうとします。
それに応じて、彼から「こんにちは!」を取得する必要があります。
重要:アプリケーションがモデレーションに合格するまで、ボットはアプリケーションの作成者に対してのみ機能します。すべてが正常に機能する場合は、先に進みます。
メッセージ受信ブロックで、次を追加します。
ボットにメッセージを送信しようとしています。
すべてが指示に従って完了したら、メッセンジャーですべてのタイプのメッセージを受信する必要があります。
Job4Joyフリーランス交換ボットの実際の例
そのため、私たちの目標は、適切なカテゴリで新しいプロジェクトを発行するボットを実装することです。
picoFeedを使用してRSS経由でデータを受信します
-github.com/fguillot/picoFeed私たちは実施します:
composer require fguillot/picofeed @stable composer require "pimax/fb-messenger-php" "dev-master"
次の内容のindex.phpファイルを作成します(コメントはコードに記載されています)。
<?php $verify_token = "";
そして、次のようなconfig.phpファイル:
<?php return [ 'token' => '',
すべてのカタログでの公開
ボットはアカウント所有者のみが利用できます。 すべての人がボットにアクセスできるようにするには、App Reviewページでアプリケーションを公開する必要があります。

その後、メッセンジャーのモデレートを要求する必要があります。 これを行うには、タブ-メッセンジャーに移動します。
[メッセンジャーのアプリレビュー]ブロックで、[アクセス許可のリクエスト]ボタンをクリックします。
表示されるウィンドウで、「pages_messaging」を選択し、「アイテムを追加」をクリックします。
今では、節度を待つだけです。
この記事の執筆時点では、最初のボットのモデレートは完了していませんが、申請が提出されてから2営業日以上経過しています。
おわりに
この記事では、Facebook用のチャットボットを作成する基本的な側面を検討しました。
トピックが人気のあることが判明した場合、他の人気のあるインスタントメッセンジャー用のボットを開発した経験について話をする準備ができています。
便利なリンク
- FBチャットボット入門-developers.facebook.com/docs/messenger-platform/quickstart
- Webフックリファレンス-developers.facebook.com/docs/messenger-platform/webhook-reference
- FB Messenger PHP API-github.com/pimax/fb-messenger-php
- PHP APIの例-github.com/pimax/fb-messenger-php-example
- Job4Joy FBボット-github.com/pimax/job4joy_fb