如何通过Directline REST API发送Teams自适应卡片按钮点击事件
解决Directline REST API发送自适应卡片按钮点击事件的错误
错误原因
你直接提交的Action.Submit类型对象不符合Directline API的要求——发送活动的接口强制要求请求体包含activities数组,所有对话活动必须包裹在这个数组内,不能直接提交操作类型的对象。
正确的请求Payload
调整后的请求体需要符合Directline的规范,把按钮点击事件包装为message类型的活动,并放入activities数组中:
{ "activities": [ { "type": "message", "from": { "id": "Zu4rZO3FRplJB1n8aR7h" }, "value": { "type": "Action.Submit", "value": "{placeHolder-value}" }, "channelData": { "postBack": true } } ] }
关键字段说明
activities:必填数组,Directline API要求所有待发送的对话活动都要放在这里type: "message":指定这是一条用户对话消息,模拟用户触发的交互from.id:保持你原有的用户ID,必须和当前对话中用户的身份ID一致value:内部放置原Action.Submit对象,用来告知机器人用户点击了自适应卡片的按钮及对应提交数据channelData.postBack: true:标记这是回传操作,避免这条交互在Teams对话中显示为普通文本消息
额外注意事项
- 请求端点必须是Directline的对话活动接口:
POST /v3/directline/conversations/{你的对话ID}/activities - 请求头要设置
Content-Type: application/json - 把
{placeHolder-value}替换为实际的按钮提交数据,比如具体的JSON对象或业务值,不需要额外加引号
内容的提问来源于stack exchange,提问作者Vishal
相关产品推荐
相关产品推荐

