【发布时间】:2021-06-25 18:42:39
【问题描述】:
我正在使用 node js 开发 Microsoft bot 框架。
我可以通过文本或卡片向用户发送可点击的链接,机器人需要知道何时点击了链接。在这种情况下,哪个事件可能有用?
或者是否有其他方法可以满足这个要求?
【问题讨论】:
标签: node.js botframework azure-bot-service web-chat
我正在使用 node js 开发 Microsoft bot 框架。
我可以通过文本或卡片向用户发送可点击的链接,机器人需要知道何时点击了链接。在这种情况下,哪个事件可能有用?
或者是否有其他方法可以满足这个要求?
【问题讨论】:
标签: node.js botframework azure-bot-service web-chat
您可以使用卡片向用户发送可点击的链接。 openUrl 操作类型指定要在默认浏览器中启动的 URL。
以下代码展示了 Node.js 中 openUrl 操作类型的示例:
CardFactory.actions([
{
type: 'openUrl',
title: 'Tabs',
value: 'https://stackoverflow.com/q/68135796/15969417'
}])
此外,在其活动 CardAction 类型中,您可以根据需要使用以下。
1.操作类型messageBack:从选择按钮或点击卡片的用户向机器人发送消息和有效负载。向聊天流发送单独的消息。
属性
messageBack 的灵活性意味着您的代码不能仅仅通过不使用 displayText 在历史记录中留下可见的用户消息。
例子:
CardFactory.actions([
{
type: 'messageBack',
title: "My MessageBack button",
displayText: "You clicked this button",
text: "User just clicked the MessageBack button",
value: {property: "propertyValue" }
}])
2.动作类型invoke:从选择按钮或点击卡片的用户向机器人发送消息和有效负载。此消息不可见。
属性
Node.js 中的调用动作类型示例:
CardFactory.actions([
{
type: "invoke",
title: "B: Show me New Card",
value: {
option: "opt2"
}
}])
传入调用消息示例 顶级 replyToId 属性包含卡片操作来自的消息的 ID。如果您想更新消息,请使用它。
以下代码显示传入调用消息的示例:JSON
{
"type": "invoke",
"value": {
"option": "opt2"
},
"timestamp": "2021-06-28T04:11:19.614Z",
"localTimestamp": "2021-06-28T21:11:19.614-07:00",
"id": "f:6894910823492785420",
"channelId": "msteams",
"serviceUrl": "https://smba.trafficmanager.net/amer-client-ss.msg/",
"from": {
"id": "29:1Eniglq0-uVL83xNB9GU6w_G5a4SZF0gcJLprZzhtEbel21G_5h-
NgoprRw45mP0AXUIZVeqrsIHSYV4ntgfVJQ",
"name": "karthik B"
},
"conversation": {
"id": "19:97b1ec61-45bf-453c-9059-6e8984e0cef4_8d88f59b-ae61-4300-bec0-caace7d28446@unq.gbl.spaces"
},
"recipient": {
"id": "28:8d88f59b-ae61-4300-bec0-caace7d28446",
"name": "MyBot"
},
"entities": [
{
"locale": "en-US",
"country": "US",
"platform": "Web",
"type": "clientInfo"
}
],
"channelData": {
"channel": {
"id": "19:dc5ba12695be4eb7bf457cad6b4709eb@thread.skype"
},
"team": {
"id": "19:712c61d0ef384e5fa681ba90ca943398@thread.skype"
},
"tenant": {
"id": "72f988bf-86f1-41af-91ab-2d7cd011db47"
}
},
"replyToId": "1575667808184"
}
示例:选项 B 的链接打开后返回到 bot。
另请参考:Adaptive Cards with invoke action
Refer: To 从选择按钮或点击卡片的用户向机器人发送消息和有效负载。向聊天流发送单独的消息,消息对所有对话参与者可见或启动 OAuth 流。
【讨论】: