2

私は異なるfbページのために異なるチャットボットを開発していますが、私はそれらを実行するサーバーが1つしかありません。複数のメッセンジャーアプリ/ボットに1つのウェブフックを使用するにはどうすればよいですか?

私はhttps://mydomain/webhookをwebhookとして使用していますが、すべて正常に動作します。すべてのメッセージは443 portに送信され、自分のプログラムで処理されます。今、私は第二のチャットボットのウェブフックをどうするべきかと思っていました。私の考えは、別のポートでhttps接続を開き、WebHookとしてhttps://mydomain/webhook:myportを使用して、各ボットが異なるポートでリッスンし、それに応じて各Webhookがそれらをポイントするようにしました。

残念ながらfacebokデベロッパープラットフォームからウェブフックを検証しようとすると、私は404 not foundというレスポンスを得ました。私は同じポート(443)で同じWebhookを使用しようとしましたが、私は403 forbiddenという応答を得ます。

+0

他のポートで実行しているサーバーはありますか? – luschn

+0

私の間違いを知り、私の答えをチェック! @luschnとにかくありがとう! – Moltehh

+1

なぜ各ボットに異なるポートを使用する必要がありますか? Webサーバーが稼働しているときに、すべてのブラウザーを別のポートに接続する必要はありません。それらはすべて80または443を使用します。同じことがここにあります。また、別々のボットを独立したものにしたい場合は、 'https:// mydomain/webhook/bot1'、' https:// mydomain/webhook/bot2'などの異なるパスを使用する方がはるかに意味があります。 – CBroe

答えて

3

複数のfacebookメッセンジャーボットに対して、まったく同じウェブフック、同じポート、すべてを使用できます。 Webhookに送信されたメッセージングイベントの各ペイロードは、メッセージの対象となるページのリストにソートされます。 Webhookにヒットした後、各ページのペイロードを別々に処理するコードを書くことができます。

+0

私はこのオプションを考慮しましたが、私はボットをお互いの間に「無分別」にしたいと思っていました。例えば。 1つのボットがクラッシュした場合、残りのすべてのボットがクラッシュすることは望ましくありません。提案していただきありがとうございます、これは私が別の方法で私の問題を解決した場合でも、実際に私の質問のための受け入れられた答えになるはずです。 – Moltehh

+0

良い点。あなたは同じサーバーの下でこれらのボットを実行していますか?よりフォールトトレラントなのは、ボットを別のプロセスに分けることですが、私はここで正しいアイデアを得ていると思います。 奇妙な場合は、ボットフレームワークを使用していますか? –

+0

1つのプロセス(サーバー)を使用してwebhookでペイロードを受信し、特定のプロセス(ボット)にJSONペイロードをディスパッチしてそのページのメッセージを処理できます。 –

1

"/ webhook"の後ろにポート番号を追加するのは間違っていましたが、ポート番号はIPアドレス "https://mydomain"の後にする必要がありました。他の誰かが不思議に思っていた場合、異なるメッセンジャーアプリに同じウェブフックを使用できます。異なるポートを使用するだけです。

関連する問題