it-swarm.com.ru

API Facebook Messenger "URL-адрес не может быть проверен"

Я пытаюсь настроить API мессенджера Facebook и получаю эту ошибку при попытке добавить WebHook:

URL не может быть подтвержден. Сбой проверки обратного вызова со следующими ошибками: curl_errno = 60; curl_error = проблема сертификата SSL: невозможно получить сертификат локального эмитента; Код состояния HTTP = 200; HTTP-сообщение = соединение установлено

Я настроил свой сервер NodeJS, используя код, который они предоставили в руководстве. Вот URL: https://stackoverload.me/chatter/webhook

РЕДАКТИРУЙТЕ ЗДЕСЬ РЕШЕНИЕ (кто-то хотел увидеть код):

var express = require('express');

var fs = require('fs');
var https = require('https');

var app = express();
app.use(express.static('public'));

// SSL
https.createServer(
    {
        ca: fs.readFileSync(__dirname + '/server.ca'),
        key: fs.readFileSync(__dirname + '/server.key'),
        cert: fs.readFileSync(__dirname + '/server.cert')
    }
, app).listen(443, function() {
    console.log('Server is now running.');
});

// HTTP redirect to SSL
express()
    .get('*', function(req,res){
        res.redirect('https://example.com' + req.url)
    })
    .listen(80);

13
Jake Cross

Забыл ответить на это, но я узнал, что я добавил файл ca и параметр на мой https-сервер, а затем Facebook принял его. 

4
Jake Cross

Пытался настроить FB messenger webhook с проверенным токеном. Примерно так: o\/ERviEE\/vt0|<E|\|

 o/ERviEE/vt0|<E|\| verify token set

То же самое было проверено в коде:

req.query['hub.verify_token'] === 'o\/ERviEE\/vt0|<E|\|'

Тем не менее, значение, полученное от FB: o\\/ERviEE\\/vt0|<E|\\|

 o\/ERviEE\/vt0|<E|\| verify token get

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

Вывод: нужно быть немного осторожнее при использовании специальных символов для проверки токенов.

Потому что Facebook экранирует специальные символы для токенов верификации.

0
student

Вы можете использовать связанный сертификат с помощью следующей оболочки:

cat www.example.com.crt bundle.crt > www.example.com.chained.crt

От http://nginx.org/en/docs/http/configuring_https_servers.html#chains

0
magicpanda