调用BotFramework Send Conversation History API返回HTTP 400错误求助
问题分析
你调用Send Conversation History API时返回BadSyntax错误,核心原因是请求体格式不符合接口要求:该API要求输入包含activities数组的Transcript对象,但你直接传入了活动数组,而非包裹在对象结构中。
修正方案
将你的活动数组嵌套在activities字段下,形成符合要求的Transcript对象,正确请求体格式如下:
{ "activities": [ { "type": "message", "id": "HBoZPkTiBYOAadigqEqFaJ-us|0000003", "timestamp": "2022-09-05T08:10:00.3574378Z", "localTimestamp": "2022-09-05T13:39:57.633+05:30", "localTimezone": "Asia/Calcutta", "serviceUrl": "https://directline.botframework.com/", "channelId": "directline", "from": { "id": "dl_uID1", "name": "userName" }, "conversation": { "id": "HBoZPkTiBYOAadigqEqFaJ-us" }, "recipient": { "id": "bot-name-dev@abcd", "name": "bot-name-dev" }, "textFormat": "plain", "locale": "en-GB", "text": "hi", "channelData": { "clientActivityID": "1662365337633rmq6e8mbm09", "clientTimestamp": "2022-09-05T08:09:57.633Z" } } ] }
额外验证点
- 确认JWT令牌权限:确保令牌包含
https://api.botframework.com/.default范围,且生成令牌的凭据(应用ID和密码)属于目标机器人 - 检查活动字段合法性:
id需保证在当前对话内唯一timestamp和localTimestamp需严格遵循ISO 8601时间格式serviceUrl需与对话对应的服务URL一致(当前使用directline地址无问题)
内容的提问来源于stack exchange,提问作者akum1143
相关产品推荐
相关产品推荐

