我从 https://github.com/bvedad/viber-bot-sample 复制了一个节点示例 viber bot 并且不得不修改它(添加了函数 app.get() 和 app.post() 因为我有一个错误 404 Not Found for route /viber/webhook) .现在我遇到 GET HTTP Request 403 Forbidden 错误:
在端口上运行的应用程序:8181 无法在以下服务器上设置 webhook。它在运行吗? { 状态:1, status_message: 'Result[HttpRequest[GET /viber/webhook/ HTTP/1.1]@182601e9 > HttpResponse[HTTP/1.1 403 Forbidden]@769aac87] null', 聊天主机名:'SN-CHAT-06_' }
当我尝试访问地址 http://math.alpin52.ru:8181/viber/webhook 时,我收到空响应错误。 我在编写 app.listen() 而不是应该正确处理 http 的 server.listen() 时遇到了同样的问题。
怎么了?谢谢。
这是我对代码的修改:
const bodyParser = require("body-parser");
var fs = require('fs');
const https = require('https');
var httpsOptions = {
cert: fs.readFileSync('/home/admin/conf/web/ssl.math.alpin52.ru.crt'),
key: fs.readFileSync('/home/admin/conf/web/ssl.math.alpin52.ru.key'),
ca: fs.readFileSync('/home/admin/conf/web/ssl.math.alpin52.ru.ca')
};
const urlencodedParser = bodyParser.urlencoded({extended: false});
var server = https.createServer(httpsOptions, app);
server.listen(port, () => {
console.log(`Application running on port: ${port}`);
bot.setWebhook(`${process.env.EXPOSE_URL}/viber/webhook`).catch(error => {
console.log('Can not set webhook on following server. Is it running?');
console.error(error);
//process.exit(1);
});
});
app.post("/viber/webhook", urlencodedParser, function (request, response) {
return response.sendStatus(200);
});
app.get("/viber/webhook", urlencodedParser, function (request, response) {
return response.sendStatus(200);
});