当前位置: 首页 > 知识库问答 >
问题:

将消息从Viber bot发送到botBuilder-viber时出错ERR_INVALID_ARG_TYPE

公羊凌
2023-03-14

npm模块中的问题

html" target="_blank">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());

预期行为

没有错误

实际行为

从viber机器人发送消息时出错(每次重复两次)。

TypeError[ERR_INVALID_ARG_TYPE]:“data”参数必须是Hmac的string、TypedArray或DataView类型之一。在MessageValidator上更新(internal/crypto/hash.js:53:11)_在MessageValidator上计算MacFromMessage(/app/node_modules/viber bot/lib/message/message validator.js:17:54)。validateMessage(/app/node_modules/viber bot/lib/message/message validator.js:11:30)位于_app。在层中使用(/app/node_modules/viber bot/lib/middleware.js:61:32)。handle[as handle_request](/app/node_modules/express/lib/router/layer.js:95:5)位于/app/node_modules/express/lib/router/index.js:317:13)的trim_前缀处。js:284:7 at函数。在层的textParser(/app/node\u modules/express/lib/router/index.js:335:12)处的下一个(/app/node\u modules/express/lib/router/index.js:275:10)处的textParser(/app/node\u modules/body parser/lib/types/text.js:60:7)处处理参数。handle[as handle_request](/app/node_modules/express/lib/router/layer.js:95:5)位于/app/node_modules/express/lib/router/index.js:317:13)的trim_前缀处。js:284:7 at函数。在层的expressInit(/app/node_modules/express/lib/router/index.js:40:5)的下一个(/app/node_modules/express/lib/router/index.js:275:10)中处理_参数(/app/node_modules/express/lib/middleware/init.js:40:5)。handle[as handle_request](/app/node_modules/express/lib/router/layer.js:95:5)位于/app/node_modules/express/lib/router/index.js:317:13)的trim_前缀处。js:284:7 at函数。在层的查询(/app/node\u modules/express/lib/router/index.js:45:5)处的下一个(/app/node\u modules/express/lib/router/index.js:275:10)处处理参数(/app/node\u modules/express/lib/middleware/query.js:45:5)。handle[as handle_request](/app/node_modules/express/lib/router/layer.js:95:5)位于/app/node_modules/express/lib/router/index.js:317:13)的trim_前缀处。js:284:7 at函数。在函数的下一个(/app/node_modules/express/lib/router/index.js:335:12)处理_参数(/app/node_modules/express/lib/router/index.js:275:10)。句柄(/app/node\u modules/express/lib/router/index.js:174:3)

TypeError[ERR_INVALID_ARG_TYPE]:“data”参数必须是Hmac的string、TypedArray或DataView类型之一。在MessageValidator上更新(internal/crypto/hash.js:53:11)_在MessageValidator上计算MacFromMessage(/app/node_modules/viber bot/lib/message/message validator.js:17:54)。validateMessage(/app/node_modules/viber bot/lib/message/message validator.js:11:30)位于_app。在层中使用(/app/node_modules/viber bot/lib/middleware.js:61:32)。handle[as handle_request](/app/node_modules/express/lib/router/layer.js:95:5)位于/app/node_modules/express/lib/router/index.js:317:13)的trim_前缀处。js:284:7 at函数。在层的textParser(/app/node\u modules/express/lib/router/index.js:335:12)处的下一个(/app/node\u modules/express/lib/router/index.js:275:10)处的textParser(/app/node\u modules/body parser/lib/types/text.js:60:7)处处理参数。handle[as handle_request](/app/node_modules/express/lib/router/layer.js:95:5)位于/app/node_modules/express/lib/router/index.js:317:13)的trim_前缀处。js:284:7 at函数。在层的expressInit(/app/node_modules/express/lib/router/index.js:40:5)的下一个(/app/node_modules/express/lib/router/index.js:275:10)中处理_参数(/app/node_modules/express/lib/middleware/init.js:40:5)。handle[as handle_request](/app/node_modules/express/lib/router/layer.js:95:5)位于/app/node_modules/express/lib/router/index.js:317:13)的trim_前缀处。js:284:7 at函数。在层的查询(/app/node\u modules/express/lib/router/index.js:45:5)处的下一个(/app/node\u modules/express/lib/router/index.js:275:10)处处理参数(/app/node\u modules/express/lib/middleware/query.js:45:5)。handle[as handle_request](/app/node_modules/express/lib/router/layer.js:95:5)位于/app/node_modules/express/lib/router/index.js:317:13)的trim_前缀处。js:284:7 at函数。在函数的下一个(/app/node_modules/express/lib/router/index.js:335:12)处理_参数(/app/node_modules/express/lib/router/index.js:275:10)。句柄(/app/node\u modules/express/lib/router/index.js:174:3)

共有1个答案

令狐烨烨
2023-03-14

我只添加了身体解析器到特定的路线,此连接器开始工作后。

 类似资料:
  • 我在使用discord机器人添加此发送消息时遇到了一个奇怪的错误。我在学习Scratch教程 结果:- `(节点:8480)未经处理的PromisejectionWarning:DiscordAPIError:在C:\Users\Deepanshu\node\u modules\discord处缺少访问权限。js\src\client\rest\RequestHandlers\Sequential

  • 我是Kafka的新手,当我试图发送信息到我得到的主题下面的错误。有人能帮我一下吗? [2018-09-23 13:37:56,613]警告[Producer Clientid=Console-Producer]无法建立到节点-1的连接。代理可能不可用。(org.apache.kafka.clients.NetworkClient)

  • 问题内容: 如何将消息从php发送到node.js?我有一个运行php和node.js的Linux服务器。 当用户完成事务(通过php)时,我想将消息从php发送到node.js。然后,节点将通过套接字连接更新客户端。 在不降低node.js性能的情况下,从php向node.js发送少量数据的好方法是什么? 问题答案: 与其他任何客户端一样,建议似乎是通过HTTP接口与节点对话。您可以使用php中

  • 我正在从Java向logstash发送TCP字符串消息。我不想为每条消息创建一个新的TCP连接,但我想重用TCP连接。保留一个TCP连接并通过socket.write和socket.flush发送消息,直到其中一个方法抛出IOException然后打开新连接,这样是否安全?

  • 我有客户端代码运行在javascript试图发送html内容到自定义处理程序。 客户端代码如下所示: 处理程序代码为: 问题在于,使用Chrome浏览器时,处理程序获取的消息(txt_内容)不完整。我得到的字符串的最大长度是:524288 当我在资源管理器中运行时,我会得到完整的消息(长度=567130)。 我在这里看到了一个类似的问题,但没有得到回答(设置maxAllowedContentLen

  • 我试图创建一个API来记录SQS队列中的JSON请求主体。 我已经在FIFO和非FIFO布局的SQS中设置了一个基本队列。我每次都有同样的问题。SQS队列的策略如下: 我已经创建了一个策略,我将所有访问SQS的权限都赋予了写能力。我已经为API网关创建了一个角色,在其中我将前面提到的策略分配给。以下是我为该角色分配的策略: 有没有一个AWS大师可以指引我走向正确的方向? 为了澄清我的问题,它应该添