URL API Facebook Messenger НЕ ПРОВЕРЕН

Я пытаюсь настроить 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);


person Jake Cross    schedule 12.04.2016    source источник
comment
У вас отсутствует промежуточный сертификат в цепочке, поэтому ваш сертификат не может быть проверен как подлинный. sslshopper.com/ssl-checker.html#hostname=stackoverload.me содержит инструкции о том, что делать.   -  person CBroe    schedule 12.04.2016
comment
@CBroe Я столкнулся с той же ошибкой, хотя я развертываю на parseapp.com, есть идеи?   -  person dhaval    schedule 13.04.2016
comment
Я добавил файл CA на свой сервер, и он работал нормально   -  person Jake Cross    schedule 13.04.2016
comment
Я проверил конфигурацию SSL на сайте sslshopper.com, но не не вижу никакой ошибки. Можете ли вы поделиться своим кодом nodejs?   -  person ozgrozer    schedule 13.04.2016
comment
Загрузил код.   -  person Jake Cross    schedule 13.04.2016
comment
Вот это да. Спасибо, мужик. Вы спасли мой день. В документации nodejs на странице нет строки ca: fs.readFileSync(), и это была единственная проблема. Теперь он отлично работает.   -  person ozgrozer    schedule 13.04.2016
comment
Рад слышать :) Вы можете поблагодарить службу поддержки Namecheap за это, ха-ха   -  person Jake Cross    schedule 14.04.2016


Ответы (3)


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

person Jake Cross    schedule 23.06.2016
comment
не могли бы вы объяснить больше и распечатать экран для вашего кода.... у меня такая же проблема - person manhag; 24.04.2019

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

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

Из http://nginx.org/en/docs/http/configuring_https_servers.html#chains

person magicpanda    schedule 15.06.2017

Пытался настроить веб-перехватчик мессенджера FB с надежным токеном подтверждения. Примерно так: o\/ERviEE\/vt0|<E|\|

o/ERviEE/vt0|‹E|\| проверить набор токенов

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

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

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

o\/ERviEE\/vt0|‹E|\| проверить получение токена

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

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

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

person Zameer Ansari    schedule 30.09.2017