你好:)
挑战Skype; Bot框架;接收可下载的文件
我有一个问题。我的项目是向机器人询问一些问题(当前使用Bot Framework Emulator,但稍后我将使用Skype),并且机器人会回答并附带图像/图表。 我可以通过界面显示答案和图像。但是,用户无法下载该图像。
我该怎么做? 借助Button,在AdaptiveCard消息中有一个选项可以下载附件的图像?
我尝试使用HeroCard,ThumbnailCard,AdaptiveCard和一个简单的附件,但是并不能解决我的问题。
预先感谢:)
答案 0 :(得分:0)
有两种方法可以解决这个问题。
使用卡
首先,卡片不允许您直接下载附件。他们充其量只能将您链接到您要用户下载的图像(或其他文件)。可以执行此操作的自适应卡的示例json
:
{
"type": "AdaptiveCard",
"body": [
{
"type": "Image",
"selectAction": {
"type": "Action.OpenUrl",
"url": "https://dev.botframework.com/Client/Images/ChatBot-BotFramework.png"
},
"url": "https://dev.botframework.com/Client/Images/ChatBot-BotFramework.png"
},
{
"type": "TextBlock",
"text": "This card's action will open an image"
}
],
"actions": [
{
"type": "Action.OpenUrl",
"title": "Open Image",
"url": "https://dev.botframework.com/Client/Images/ChatBot-BotFramework.png"
}
],
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.0"
}
看起来像这样:
此卡显示图像,并包含一个供用户打开和下载图像的链接。因为我直接在图像上添加了Action.OpenUrl
,所以用户可以单击图像以打开然后下载它-“打开图像”按钮只是为了显示另一种方法。
对于自适应卡Documentation,Schema和user-friendly Designer来说,这是一个不错的网站。请注意,设计器目前不允许您轻松添加Action
。您必须在JSON
部分中手动添加它们。
发送附件
但是,您可以直接发送包含下载文件功能的消息。
您可以使用以下内容定义附件:
const attachment = {
name: 'PDF',
contentType: 'application/pdf',
contentUrl: 'https://media.readthedocs.org/pdf/microsoftbotframework/latest/microsoftbotframework.pdf',
}
然后通过以下方式将其发送给用户:
await step.context.sendActivity({
text: 'Attachment',
attachments: [attachment],
});
两个重要说明:
此方法非常适合发送文件。如果使用图像,它将显示不可点击的图像。这意味着自适应卡将更适合发送可下载的图像。
您的代码可能使用的不是step.context
。这是作为“瀑布对话框”的一部分发送的。您的机器人可能需要其他版本的context.sendActivity
。
如果您找到了答案,请标记为“已回答”,我可以从支持记录追踪器中清除它。否则,请随时发表评论,我们会为您提供进一步的帮助。
答案 1 :(得分:0)
[建议删除-我认为您是要发表评论而不是回答。]