尝试设置viber Webhook。我已经有一个快速服务器设置。因此,我只是将Bot添加为中间件。一切都已找到,服务器已启动并正在运行。一旦调用bot.setWebhook(process.env.VB_WEBHOOK_URL),就会引发错误,提示->“ data”参数必须是字符串,TypedArray或DataView类型之一。收到的类型对象”
在本地服务器配置中尝试使用ngrok时,它可以正常工作。在实时服务器配置中设置Webhook时的唯一问题。请检查下面的代码
const path = require("path");
const publicPath = path.join(__dirname, "../public");
const express = require("express");
const http = require("http");
const env = require("dotenv");
const bodyParser = require("body-parser");
env.config({
path: path.resolve(__dirname + "/.env")
});
const app = express();
const server = http.createServer(app);
const adminActionRoute = require('./routes/admin');
app.use(express.static(publicPath));
app.use(bodyParser.json({ verify: verifyRequestSignature }));
app.use(bodyParser.urlencoded({ limit: '200mb', extended: true }));
app.use('/api/admin', adminActionRoute);
const viberBot = require('../viber_chat/utils/bot')
app.use('/viber/webhook', viberBot.middleware())
server.listen(5000, () => {
viberBot.setWebhook(process.env.VB_WEBHOOK_URL);
console.log("server starts at port 5000");
});
module.exports = server; //for testing
'/ viber_chat / utils / bot'文件
require('dotenv').config();
const ViberBot = require('viber-bot').Bot;
const BotEvents = require('viber-bot').Events;
const logger = require('../utils/logger');
const bot = new ViberBot(logger, {
authToken: process.env.VB_API_KEY,
name: "Bot Name",
avatar: ""
});
bot.onSubscribe(response => {
});
bot.on(BotEvents.CONVERSATION_STARTED, (response) => {
})
module.exports = bot;
TypeError [ERR_INVALID_ARG_TYPE]:“数据”参数必须是字符串,TypedArray或DataView类型之一。收到的类型对象 在Hmac.update(internal / crypto / hash.js:58:11) 在MessageValidator._calculateHmacFromMessage(/home/thettun/project_folder/funfun_viber/node_modules/viber-bot/lib/message/message-validator.js:19:54) 在MessageValidator.validateMessage(/home/thettun/project_folder/funfun_viber/node_modules/viber-bot/lib/message/message-validator.js:11:30) 在_app.use(/home/thettun/project_folder/funfun_viber/node_modules/viber-bot/lib/middleware.js:61:32) 在Layer.handle [作为handle_request](/home/thettun/project_folder/funfun_viber/node_modules/express/lib/router/layer.js:95:5) 在trim_prefix(/home/thettun/project_folder/funfun_viber/node_modules/express/lib/router/index.js:317:13) 在/home/thettun/project_folder/funfun_viber/node_modules/express/lib/router/index.js:284:7 在Function.process_params(/home/thettun/project_folder/funfun_viber/node_modules/express/lib/router/index.js:335:12) 在下一个(/home/thettun/project_folder/funfun_viber/node_modules/express/lib/router/index.js:275:10) 在textParser(/home/thettun/project_folder/funfun_viber/node_modules/body-parser/lib/types/text.js:60:7) 在Layer.handle [作为handle_request](/home/thettun/project_folder/funfun_viber/node_modules/express/lib/router/layer.js:95:5) 在trim_prefix(/home/thettun/project_folder/funfun_viber/node_modules/express/lib/router/index.js:317:13) 在/home/thettun/project_folder/funfun_viber/node_modules/express/lib/router/index.js:284:7 在Function.process_params(/home/thettun/project_folder/funfun_viber/node_modules/express/lib/router/index.js:335:12) 在下一个(/home/thettun/project_folder/funfun_viber/node_modules/express/lib/router/index.js:275:10) 在expressInit(/home/thettun/project_folder/funfun_viber/node_modules/express/lib/middleware/init.js:40:5)
答案 0 :(得分:0)