it-swarm.com.ru

Платформа Facebook Messenger. Настройка webhook с SSL

Наконец, Facebook запустил API для своего мессенджера API для своего мессенджера . Это позволит нам создавать чат-ботов.

В руководстве по началу работы , мне нужно настроить webhook. Для этого требуется веб-сервер, который находится в определенном домене и должен использовать соединение SSL.

У меня есть VPS, который имеет статический IP. Я сделал самозаверяющий сертификат и создал простой веб-сервер Node JS, который использует этот сертификат. Прежде всего мне нужно проверить токен для 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 нажимаю кнопку Verify and Save.

Это выдает мне это сообщение об ошибке:

 Screenshot

Это означает, что Facebook не хочет принимать мой самозаверяющий сертификат.

Это приносит несколько вопросов:

Нужно ли использовать SSL-сертификаты только предоставленные центрами сертификации для работы с мессенджером facebook?

Работать с мессенджером Facebook гораздо сложнее, чем Telegram.

19
Mr.D

Вы можете использовать cloudflare , чтобы получить https вместо самостоятельной подписи. Или вы можете использовать https://letsencrypt.org

6
saturngod

Для простого тестирования вы можете использовать localtunnel. https://localtunnel.me/

9
ndrx42

Я развернул мой бот в Heroku, и они с готовностью предлагают HTTPS-соединения. Для локальной разработки я использую ngrok, который также поддерживает переадресацию HTTPS.

 Ngrok

Для новичков я написал это небольшое руководство для тех, кто хочет начать работу с API Facebook Messenger (Bot), от первой строки кода до развертывания Heroku. Я обнаружил, что Heroku идеально подходит для такого проекта, поскольку я использовал Python flask + gunicorn, все, что мне нужно для развертывания, действительно заняло 5 минут, а Heroku позаботился обо всем остальном.

7
Hung Tran

Извлечено из здесь :

Новые подписки на веб-крюки должны использовать защищенный URL-адрес обратного вызова HTTPS начиная с версии 2.5. В следующей версии Graph API мы перестанем отправлять обновления по URL-адресам обратного вызова не-HTTPS.
Если вам нужна дополнительная информация о настройке HTTPS для URL-адреса обратного вызова, ознакомьтесь с руководством по началу работы из Let's Encrypt и инструкциями по установке сертификата SSL от Digicert.

И из здесь , и как @saturngod сказал:

Самостоятельно подписанные сертификаты не будут приняты на Facebook. Letsencrypt сертификаты работает отлично.

3
Anfuca

У меня была такая же ошибка при использовании Comodo SSL на Apache. В моем случае мне не хватало SSLCertificateChainFile, и мне просто нужно было загрузить этот пакетный файл и путь к файлу в моей конфигурации виртуального хоста и перезагрузить Apache. Вот ссылка для установки comodo SSL, приобретенного на ssls.com https://helpdesk.ssls.com/hc/en-us/articles/203482651-How-to-install-a-SSL-certificate-on-Apache .

0
user3612888

Для проверки веб-хука используйте: -

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

Сначала проверьте токен на своей странице, а затем напечатайте: -

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