Das Bot Framework WebChat-Steuerelement funktioniert nicht mit dem Token-Protokoll, wie in der Embed the Chat Control Dokumente beschrieben. Hier ist der Code, den ich Mühe, mich mit:Bot-Framework Web-Chat-Token-Protokoll funktioniert nicht
string webChatSecret = ConfigurationManager.AppSettings["WebChatSecret"];
var request = new HttpRequestMessage(HttpMethod.Post, "https://webchat.botframework.com/api/conversations");
request.Headers.Add("Authorization", "BOTCONNECTOR " + webChatSecret);
HttpResponseMessage response = await new HttpClient().SendAsync(request);
string responseJson = await response.Content.ReadAsStringAsync();
WebChatTokenResponse webChatResponse = JsonConvert.DeserializeObject<WebChatTokenResponse>(responseJson);
return $"<iframe width='400px' height='400px' src='https://webchat.botframework.com/embed/PigLatinBotJoeMayo?t={webChatResponse.Token}'></iframe>";
die WebChatTokenResponse ist
public class WebChatTokenResponse
{
public string ConversationID { get; set; }
public string Token { get; set; }
}
Wenn ich debuggen und prallte gegen einen Haltepunkt, ich habe ein ConversationId und einen Token. Es werden keine Ausnahmen ausgelöst.
Wenn ich das Geheimnis nur, wie diese (anstelle der obigen Code, alles funktioniert:
string webChatSecret = ConfigurationManager.AppSettings["WebChatSecret"];
return $"<iframe width='400px' height='400px' src='https://webchat.botframework.com/embed/PigLatinBotJoeMayo?s={webChatSecret}'></iframe>";
Hier sind die Fehlermeldungen ich mit F12-Tools bin zu sehen:
Ich bin einen 500 Internal Server error auf
Anforderungs-URL zu sehen: https://webchat.botframework.com/api/conversations
mit der Fehlermeldung:
{ "message": "Ein Fehler ist aufgetreten" }
Wenn ich geben Sie eine 'hallo' Nachricht an:
Anforderungs-URL: https://webchat.botframework.com/api/conversations/null/messages
Ich erhalte eine 403 Forbidden Nachricht mit der Antwort:
{ "message": "Invalid Token oder geheimen" }
aktualisieren
ich darüber gebloggt, wie ich bei Using the Bot Framework Chat Control diese Arbeit bekam.
Danke Dan, das funktioniert jetzt. Die einzige Beobachtung, die ich habe, ist, dass das Token von Anführungszeichen umgeben ist. z.B. "". Ich bereinigte das mit 'token = token.Replace (" \ "", ""); ' –