Ответ 1
Забыл ответить на это, но я узнал, что добавил файл ca и параметр на свой https-сервер, а затем Facebook принял его.
Я пытаюсь настроить 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);
Забыл ответить на это, но я узнал, что добавил файл ca и параметр на свой https-сервер, а затем Facebook принял его.
Вы можете использовать закодированный сертификат в следующей оболочке:
cat www.example.com.crt bundle.crt > www.example.com.chained.crt
От http://nginx.org/en/docs/http/configuring_https_servers.html#chains
пытался настроить FB messenger webhook с сильным маркером подтверждения. В некотором роде: o\/ERviEE\/vt0|<E|\|
То же самое было проверено в коде:
req.query['hub.verify_token'] === 'o\/ERviEE\/vt0|<E|\|'
Однако значение, полученное от FB, равно: o\\/ERviEE\\/vt0|<E|\\|
Это странно. Кажется, что нет ссылки на документ, в которой говорится о том, как Facebook ускользает от специальных символов для проверки токенов или подобных. Не уверен, что это происходит и для других объектов.
Заключение: нужно быть немного осторожным при использовании специальных символов для проверки токенов.
Потому что Facebook ускользает от специальных символов для проверки токенов webhooks.