2017-06-07 11 views
0

Ich habe versucht, ein JSON-String-Objekt oder eine Anlage über die Sitzung mit session.send senden, habe ich den folgenden Fehler in der Konsole und bekomme keine Antwort vom Bot.Skype-Bot-Fehler beim Senden von Anlagen/JSON

Error: Request to ' https://smba.trafficmanager.net/apis/v3/conversations/SOMEHASHCODE/activities ' failed: [400] Bad Request

Wenn ich die Skype-Kanal Probleme in Microsoft Bot-Framework überprüft, sehe ich die folgende Meldung für JSON

Invalid XML in message text

und die folgende Meldung für Anlagen-Objekte.

Unknown attachment type

Der Bot funktioniert perfekt in Slack und Emulator. Es muss also nicht das Problem mit dem Code sein.

// 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', 
    })); 

Das JSON-Objekt, das gesendet wurde, war {"name": "Philip John", "id": "444411111111", "phone": "54545454", "email": "[email protected]", "address": "Street 11 - 111, City , ", "job": "Software Tester", "date": "1st June 2017", "salary": "9000", "bankAccount": "DE121231231231231231" }

Jede Idee, wie dieses Problem zu lösen?

+0

Können Sie das JSON-Objekt freigeben, das den Fehler verursacht hat? – nilsw

+0

@NilsW bitte überprüfen. Das JSON-Objekt wurde hinzugefügt. –

+0

für Frage # 2 - Word-Dateianlage, können Sie eine Verknüpfung zu einer Beispieldatei herstellen, die den Fehler erzeugt? – nilsw

Antwort

0

Antwort zu Frage # 1: Verschickten JSON in Bot-Framework-Nachricht senden.

Wenn Sie stringify JSON mit den folgenden Einstellungen:

JSON.stringify(inputJson, null, 2) 

Es erzeugt eine Ausgabe mit new-line-Symbole, die in einem Endgerät oder Browser-Konsole auf „Pretty Print“ Konsolenausgabe konzipiert ist, aber nicht produzieren die gleiche Formatierung beim Senden als eine Nachricht über 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": "[email protected]",\n "address": "Street 11 - 111, City , ",\n "job": "Software Tester",\n "date": "1st June 2017",\n "salary": "9000",\n "bankAccount": "DE121231231231231231"\n}'; 

richtige Zeilenumbrüche in Ihrem Bot Nachricht zu erhalten, müssen Sie zwei \n Zeichen ein, anstatt verwenden. Zum Beispiel:

// 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": "[email protected]",\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}'; 

Antwort auf Frage # 2: Unterstützte Nachrichtenanlagentypen in Bot Framework.

Derzeit ist contentType: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' ein nicht unterstützter Inhaltstyp. Verwenden Sie stattdessen application/word.