2016-06-12 87 views
1

我正在使用Microsoft Botframework和botbuilder的node.js版本。我的机器人可以使用共享消息字段将消息发送到kik(和其他服务) - 这是bot连接器允许所有消息的消息。kik的botframework channelData导致错误:400(Bad Request)

但是,当我尝试为kik使用channelData字段时,出现400(错误请求)错误消息。我已经适应了我的消息使用从以下提示: Bot Connector: Sending custom message to Kik results in 400 error 但我仍然失去了一些东西。

感谢您为kik正确映射消息的任何帮助。 session.send({ type: "Message", to: { "channelId":"kik", "address": session.message.from.address}, from: { "channelId":"kik", "address": session.message.to.address}, replyToMessageId: session.message.id, conversationId: session.message.conversationId, channelConversationId: session.message.channelConversationId, channelMessageId: session.message.channelMessageId, channelData: { "messages": [ { "chatId": session.message.channelConversationId, "type": "text", "to": session.message.from.name, "text": "test text", "noForward": true } ] } });

我也试过只发送channelData部分,但也导致400错误:导致400错误

代码 channelData: { "messages": [ { "chatId": session.message.channelConversationId, "type": "text", "to": session.message.from.name, "text": "test text", "noForward": true } ] }

回答

0

我相信你的数据格式不正确。 Kik预计文本内容为“body”而不是“text”。请尝试:

"messages": [ 
      { 
       "chatId": session.message.channelConversationId, 
       "type": "text", 
       "to": session.message.from.name, 
       "body": "test text", 
       "noForward": true 
      } 
+0

感谢您的建议@Lars。这似乎并没有这样做。我尝试了两组数据(仅限channelData和更多的消息信息,就像我原来的帖子一样)。我仍然得到:“服务错误:响应状态代码不表示成功:400(错误的请求)。” – designdit

+0

仔细检查您是否没有将“从”和“到”地址颠倒过来。 400直接来自Kik。 – Lars

+0

我认为我有“from”和“to”正确 - 我使用用户发送的消息中的“from”作为bot发送“to”的地址。我可以毫无问题地向Kik发送非通道数据消息,但没有想出如何格式化/发送使用Kik特定通道数据字段的消息。 – designdit

相关问题