web-dev-qa-db-ja.com

Facebook Messengerプラットフォーム。 SSLを使用したwebhookのセットアップ

最後に、Facebookはメッセンジャー用のAPIを立ち上げました メッセンジャー用のAPI 。これにより、チャットボットを作成できます。

入門ガイド で、webhookをセットアップする必要があります。これには、特定のドメインに存在するWebサーバーが必要であり、SSL接続を使用する必要があります。

静的IPを持つVPSがあります。自己署名証明書を作成し、この証明書を使用するシンプルなNode JS Webサーバーを作成しました。まず、webhookのトークンを確認する必要があります。

app.get('/webhook/', function (req, res) {
  if (req.query['hub.verify_token'] === '<validation_token>') {
      res.send(req.query['hub.challenge']);
  }
  res.send('Error, wrong validation token');
})

次に、このサーバーアプリケーションを起動し、Facebookアプリダッシュボードで確認と保存ボタンをクリックします。

このエラーメッセージがスローされます。

Screenshot

つまり、Facebookは自己署名証明書を受け入れたくないです。

これにはいくつかの質問があります。

Facebookメッセンジャーを使用するために、SSL証明書を使用する必要がありますか認証局からのみ提供

Facebookのメッセンジャーでの作業は、Telegramよりもはるかに困難です。

19
Mr.D

cloudflare を使用して、自己署名の代わりにhttpsを取得できます。または、 https://letsencrypt.org を使用できます

6
saturngod

単にテストするために、localtunnelを使用できます。 https://localtunnel.me/

9
ndrx42

my bot をHerokuにデプロイすると、HTTPS接続がすぐに提供されます。ローカル開発では、ngrokを使用します。これはHTTPS転送もサポートしています。

Ngrok

新規参入者のために、私は この小さなチュートリアル を書きました。コードの最初の行からHerokuの展開まで、Facebook Messenger(Bot)APIを使い始めたい人向けです。 Python flask + gunicornを使用していたため、Herokuはこのようなプロジェクトに最適であることがわかりました。セットアップするために、Herokuが残りを処理しました。

7
Hung Tran

here から抽出:

新しいwebhookサブスクリプションでは、v2.5以降、安全なHTTPSコールバックURLを使用する必要があります。 Graph APIの次のバージョンでは、HTTPS以外のコールバックURLへの更新の送信を停止します。

そして here から、@ saturngodが言ったように:

自己署名証明書は、facebookでは受け入れられません。 Letsencrypt 証明書は完全に機能します。

3
Anfuca

ApacheでComodo SSLを使用しても同じエラーが発生しました。私の場合、SSLCertificateChainFileがなく、そのバンドルファイルと仮想ホスト設定のファイルへのパスをアップロードして、Apacheをリロードするだけでした。これは、ssls.comから購入したcomodo SSLをインストールするためのリンクです https://helpdesk.ssls.com/hc/en-us/articles/203482651-How-to-install-a-SSL-certificate-on -Apache

0
user3612888

Webフックを確認するには:-

$_REQUEST["hub_token"] and $_REQUEST["hub_challenge"];

最初にページトークンのトークンを確認してから、印刷します:-

echo $_REQUEST["hub_challenge"];
exit;
0
Prashant