将图像上传到Skype BOT
我有一个使用Microsoft Bot Framework开发的bot,并在Debug中正确运行
在Skype上安装后,上传图像后我有这样的链接
https://df-apis.skype.com/v2/attachments/0-eus-d4-7e19a097c62f5fc21dd53eabfa19d85e/views/original
代码很简单,没有skype运行
if ((activity.Attachments != null) && (activity.Attachments.Count > 0)) { analysisResult = await AnalyzeUrl(activity.Attachments[0].ContentUrl); } ........
我如何找到我发送的图片?
根据此评论 ,要获取附件,GET请求应包含bot的JwtToken作为授权标头:
var attachment = activity.Attachments?.FirstOrDefault(); if (attachment?.ContentUrl != null) { using (var connectorClient = new ConnectorClient(new Uri(activity.ServiceUrl))) { var token = await (connectorClient.Credentials as MicrosoftAppCredentials).GetTokenAsync(); var uri = new Uri(attachment.ContentUrl); using (var httpClient = new HttpClient()) { if (uri.Host.EndsWith("skype.com") && uri.Scheme == Uri.UriSchemeHttps) { httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/octet-stream")); } else { httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(attachment.ContentType)); } var attachmentData = await httpClient.GetByteArrayAsync(uri); analysisResult = await AnalyzeUrl(attachmentData); } } }
这意味着您必须更改AnalyzeUrl
以接受图像数据而不是URL。 我相信您正在使用的CognitiveServices能够接受图像数据。
- 当用户向我的机器人发送消息时,他会收到欢迎消息。 但是当用户响应时,bot会再次发送欢迎消息。 我怎样才能解决这个问题?
- 暂时存储特定用户的会话
- 我可以将自定义逻辑添加到Bot Framework PromptDialog以处理无效答案吗?
- 如何在与机器人聊天时获取用户的位置?
- 当用户键入“退出”,“退出”等时,终止所有对话框并退出MS Bot Framework中的对话
- 如何在Microsoft Bot Framework + C#中安排任务?
- 团队通道1:1上的botframework集成了身份validationAAD
- 在Botframework中的状态
- 带有Facebook Messenger按钮的Microsoft Bot Framework消息