Ошибка ERR_INVALID_ARG_TYPE при отправке сообщения от бота Viber на botbuilder-viber - PullRequest
0 голосов
/ 21 мая 2018

Проблема в npm-модуле

https://www.npmjs.com/package/botbuilder-viber

Платформа

Операционная система: Ubuntu

Версия узла: 9.3.0

Версия NPM: 5.5.1.

Код

var viber = require('botbuilder-viber');
var express = require('express');
var bodyParser = require('body-parser');

var viberOptions = {
  Token: '***',
  Name: '***',
  AvatarUrl: '***'
}
var viberChannel = new viber.ViberEnabledConnector(viberOptions);

var expressApp = express();

expressApp.listen(process.env.port || process.env.PORT || 3978, function() {
    console.log("Express server is running.");
});

expressApp.use(bodyParser.urlencoded({ extended: false }));

expressApp.use(bodyParser.json());

bot.connector(viber.ViberChannelId, viberChannel);

expressApp.use('/viber/webhook', viberChannel.listen());

Ожидаемое поведение

Нет ошибок

Фактическое поведение

Ошибка (повторяется дважды) при отправке сообщения от моего робота-вибера.

TypeError [ERR_INVALID_ARG_TYPE]: аргумент «data» должен быть одним из типа string, TypedArray или DataView в Hmac.update (internal / crypto / hash.js: 53: 11) в MessageValidator._calculateHmacFromMessage (/ app / node_modules / viber-bot / lib / message / message-validator.js: 17: 54) в MessageValidator.validateMessage (/app/node_modules/viber-bot/lib/message/message-validator.js:11:30) в _app.use (/app / node_modules / viber-bot / lib / middleware.js: 61: 32) в Layer.handle [как handle_request] (/app/node_modules/express/lib/router/layer.js:95:5) в trim_prefix (/приложение / node_modules / экспресс /lib / router / index.js: 317: 13) в /app/node_modules/express/lib/router/index.js:284:7 в Function.process_params (/app/node_modules/express/lib/router/index.js: 335: 12) в следующем (/app/node_modules/express/lib/router/index.js:275:10) в textParser (/app/node_modules/body-parser/lib/types/text.js:60:7) в Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5) в trim_prefix (/app/node_modules/express/lib/router/index.js:317:13) в /app/node_modules/express/lib/router/index.js:284:7 в Function.process_params (/app/node_modules/express/lib/router/index.js:335:12) в следующем (/ app /node_modules / express / lib / router / index.js: 275: 10) в expressInit (/app/node_modules/express/lib/middleware/init.js:40:5) в Layer.handle [как handle_request] (/ app /node_modules / express / lib / router / layer.js: 95: 5) в trim_prefix (/app/node_modules/express/lib/router/index.js:317:13) в / app / node_modules / express / lib / router /index.js: 284: 7 в Function.process_params (/ app / node_modules / express / lib / rexternal / index.js: 335: 12) по следующему (/app/node_modules/express/lib/router/index.js:275:10) по запросу (/app/node_modules/express/lib/middleware/query.js:45: 5) в Layer.handle [как handle_request] (/app/node_modules/express/lib/router/layer.js:95:5) в trim_prefix (/app/node_modules/express/lib/router/index.js:317: 13) в /app/node_modules/express/lib/router/index.js:284:7 в Function.process_params (/app/node_modules/express/lib/router/index.js:335:12) в следующем (/app/node_modules/express/lib/router/index.js:275:10) в Function.handle (/app/node_modules/express/lib/router/index.js:174:3)

TypeError[ERR_INVALID_ARG_TYPE]: аргумент «data» должен быть одним из типа string, TypedArray или DataView в Hmac.update (internal / crypto / hash.js: 53: 11) в MessageValidator._calculateHmacFromMessage (/ app / node_modules / viber-bot)/lib/message/message-validator.js:17:54) в MessageValidator.validateMessage (/app/node_modules/viber-bot/lib/message/message-validator.js:11:30) в _app.use (/ app/ node_modules /viber-bot / lib / middleware.js: 61: 32) в Layer.handle [как handle_request] (/app/node_modules/express/lib/router/layer.js:95:5) в trim_prefix (/ app / node_modules /)express / lib / router / index.js: 317: 13) в /app/node_modules/express/lib/router/index.js:284:7 в Function.process_params (/ app / node_modules / express / lib / router / index.js: 335: 12) в следующем (/app/node_modules/express/lib/router/index.js:275:10) в textParser (/app/node_modules/body-parser/lib/types/text.js:60: 7) в Layer.handle [как handle_request] (/app/node_modules/express/lib/router/layer.js:95:5) в trim_prefix (/app/node_modules/express/lib/router/index.js:317: 13) в /app/node_modules/express/lib/router/index.js:284:7 в Function.process_params (/app/node_modules/express/lib/router/index.js:335:12) в следующем (/app / node_modules / express / lib / router / index.js: 275: 10) в expressInit (/app/node_modules/express/lib/middleware/init.js:40:5)в Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5) в trim_prefix (/app/node_modules/express/lib/router/index.js:317:13)в /app/node_modules/express/lib/router/index.js:284:7 в Function.process_params (/app/node_modules/express/lib/router/index.js:335:12) в следующем (/ app / node_modules)/express/lib/router/index.js:275:10) по запросу (/app/node_modules/express/lib/middleware/query.js:45:5) в Layer.handle [как handle_request] (/ app / node_modules/express/lib/router/layer.js:95:5) в trim_prefix (/app/node_modules/express/lib/router/index.js:317:13) в / app / node_modules / express / lib / router / index.js: 284: 7 в Function.process_params (/app/node_modules/express/lib/router/index.js:335:12) в следующем (/app/node_modules/express/lib/router/index.js:275:10) в Function.handle (/app/node_modules/express/lib/router/index.js:174:3)

1 Ответ

0 голосов
/ 08 июня 2018

Я добавил bodyparser только для определенных маршрутов, после того, как этот соединитель начинает работать.

...