发送附件/ JSON时出现Skype僵尸程序错误

时间:2017-06-07 08:29:17

标签: bots botframework skype

我试图使用session.send通过会话发送JSON字符串化对象或附件,我在控制台中收到以下错误,并且没有从机器人那里得到任何响应。

  

错误:请求“https://smba.trafficmanager.net/apis/v3/conversations/SOMEHASHCODE/activities”失败:[400]错误请求

当我检查Microsoft Bot Framework中的Skype频道问题时,我看到以下有关JSON对象的消息

  

消息文本中的XML无效

以及附件的以下消息。

  

未知的附件类型

机器人在Slack和Emulator中完美运行。所以它一定不是代码的问题。

// JSON object
session.send(JSON.stringify(session.conversationData.inputData, null, 2));

// Attachment message
session.send(new builder.Message(session)
    .text(`Here's the document:`)
    .addAttachment({
      contentUrl: `http://host:port/${filePath}`,
      contentType: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
      name: 'Document.docx',
    }));

发送的JSON对象是{"name": "Philip John", "id": "444411111111", "phone": "54545454", "email": "philip@john.com", "address": "Street 11 - 111, City , ", "job": "Software Tester", "date": "1st June 2017", "salary": "9000", "bankAccount": "DE121231231231231231" }

知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

回答问题#1:在Bot Framework消息中发送字符串化的JSON。

使用以下设置对JSON进行字符串化时:

JSON.stringify(inputJson, null, 2)

它使用换行符号生成输出,该符号设计为终端或浏览器控制台中的“漂亮打印”控制台输出,但在通过Bot Framework SDK作为消息发送时不会产生相同的格式。

// string output of JSON.stringify(inputJson, null, 2)
var stringified = = '{\n  "name": "Philip John",\n  "id": "444411111111",\n  "phone": "54545454",\n  "email": "philip@john.com",\n  "address": "Street 11 - 111, City , ",\n  "job": "Software Tester",\n  "date": "1st June 2017",\n  "salary": "9000",\n  "bankAccount": "DE121231231231231231"\n}';

要在机器人消息中获得正确的换行符,您需要使用两个\n个字符而不是一个。例如:

// bot formatted message string with line breaks
var botJsonMessage = '{\n\n  "name": "Philip John",\n\n  "id": "444411111111",\n\n  "phone": "54545454",\n\n  "email": "philip@john.com",\n\n  "address": "Street 11 - 111, City , ",\n\n  "job": "Software Tester",\n\n  "date": "1st June 2017",\n\n  "salary": "9000",\n\n  "bankAccount": "DE121231231231231231"\n\n}';

回答问题#2:Bot Framework中支持的消息附件类型。

目前,contentType: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'是不受支持的内容类型。请改用application/word