web-dev-qa-db-ja.com

Facebookメッセンジャーボット-ボットを無効にし、人間がチャットできるようにする方法

これは、私が16時間ほど考え抜いてきたことです。私はPHP/CuRl/etc-でコーディングしています-ボットは機能し、すべてが正常です。私の現在の問題は、ボットを無効にし、人間が顧客/送信者とチャットを開始できるようにする方法を理解することです。

誰かが成功して、このためのルートを作成しましたか?私が見ているものからかなり難しいことを意味します、あなたは等を無効にする必要があるでしょう。私のクライアントのための多くの努力。

ご意見をお寄せいただきありがとうございます。

12

Facebookは「Handover Protocol」を公開しました。これは、人間とボットの組み合わせによるMessengerの実装を容易にすることになっています。

https://developers.facebook.com/docs/messenger-platform/handover-protocol

ステップ5で実際に何が発生するかは少し不明確です。

スレッド制御を渡す:会話のある時点で、ユーザーはライブエージェントとの対話などを行うことを選択できます。これを処理するには、プライマリレシーバーからセカンダリレシーバーにスレッド制御を渡します。セカンダリレシーバーは、messaging_handovers Webhookイベントを受信して​​、会話を制御していることを通知します。

これは実際にボットを無効にするのではなく(OPが要求したとおり)、ページ所有者の制御ではなく、ユーザーの制御下にあります。 FBはユーザーが「人間とチャットしたい」のようなものを入力してボットが制御を渡すのをトリガーすることを想定しているようです...しかし、ページの所有者がアプリをスタンバイ状態にして、自分でメッセージを処理できるようにするといいでしょう。

6
laloumen

誰かが人間と話したいと思ったら、ボットのすべてのアクションを無効にするフラグをオンに設定します。

次に、ボットにユーザーID、またはユーザーIDが応答する必要があることを応答する人にメッセージを送信します。ボットを再度有効にするまで、ボットから受信したすべてのメッセージを引き続き送信します。

ボットが特定のユーザーにメッセージを送信できるようにする何らかの方法を作成し、ボットとユーザーとの対話を再度有効にする方法を作成します。

おそらく「sendMessage104012301230 'こんにちは、[etc]が見つかりませんでした」というようなもので、enableUser104012301230

より良い方法があるかもしれませんが、それらは私がそれをどのように行うかについてのいくつかの考えです

3
user2322082

メッセージのエコーを有効にすると、ページを使用して人間が応答するたびに、エコーの投稿が送信され、entry-> messaging-> message内にapp_idはありません。

その情報を使用して、特定の期間ボット応答を無効にするか、有効にするまで無期限に無効にすることができます(それは私がやっている方法です)

2
Pablo

解決策は、メッセージに「未解決」のラベルを付けることだと思いました。別の解決策は、ボットに会話を未読としてマークさせることです。誰かがラベルを会話に追加したり、APIを介して未読としてマークしたりできるかどうか知っていますか?

1
Freerider