1

Bot Connector に登録された単純なボットをセットアップしました。基本的な Direct Line API 接続をセットアップしようとしています。別のアプリケーション (C#) では、HttpClient を使用して会話を開始し、(応答を逆シリアル化して) conversationId を取得することに成功しました。

ただし、スレッドにメッセージを投稿しようとすると、「内部サーバー エラー」、エラー コード 500 が表示されます。添付される唯一のメッセージは「エラーが発生しました」です。

using(var client =  new HttpClient())
{
client.BaseAddress = new Uri("https://directline.botframework.com/");
client.DefaultRequestHeaders.Clear();
client.DefaultRequestHeaders.Add("Authorization", $"BotConnector {token}");
client.DefaultRequestheaders.Add("Type", "Message");
var post_content = new StringContent("Adding to the convo", Encoding.UTF8, "application/json");
HttpResponseMessage response = new client.PostAsync($"api/conversations/{convo_id}/messages", post_content).Result;
log(response.ReadAsStringAsync().Result);
}

log はコンソールに出力する簡単な方法で、convo_id はサイトへの最初の呼び出しから取得された conversationId です。

4

2 に答える 2

0

コード行:

var post_content = new StringContent("Adding to the convo", Encoding.UTF8, "application/json");

問題の元です。予想されるメッセージの形式を見てください: http://docs.botframework.com/sdkreference/restapi-directline/#!/Conversations/Conversations_PostMessage

一連のフィールドを持つ JSON オブジェクトが必要です。問題を報告し、メッセージの内容を変更したところ、エラーは解消されました。

Message message = new Message(conversationId: convId, text: "Happy days");
string output = JsonConvert.SerializeObject(message);
var post_content = new StringContent(output,Encoding.UTF8,"application/json");
于 2016-04-26T20:45:14.243 に答える