C# 通过剪贴板添加时,无法访问Microsoft团队活动中的图像

C# 通过剪贴板添加时,无法访问Microsoft团队活动中的图像,c#,botframework,microsoft-teams,C#,Botframework,Microsoft Teams,我正在开发一个bot,它通过Botframework接收来自团队的消息,并将它们发送到另一个应用程序。 我用的是.NETCore 到目前为止一切正常,我可以移动文本、表情符号、文件等。 但我对剪贴板中的图像有问题 发送普通文件时,我可以使用从Botframework接收的活动的Attachment.Content[“downloadUrl”]访问它 但是,当我从剪贴板插入图像时,它是以另一种方式存储的,在活动中,我会得到两个带有不同URL的附件(一个用于布局,一个用于图像资源,我想?),如下图所

我正在开发一个bot,它通过Botframework接收来自团队的消息,并将它们发送到另一个应用程序。 我用的是.NETCore

到目前为止一切正常,我可以移动文本、表情符号、文件等。 但我对剪贴板中的图像有问题

发送普通文件时,我可以使用从Botframework接收的活动的Attachment.Content[“downloadUrl”]访问它

但是,当我从剪贴板插入图像时,它是以另一种方式存储的,在活动中,我会得到两个带有不同URL的附件(一个用于布局,一个用于图像资源,我想?),如下图所示,但当尝试获取图像时,我会收到一个未经授权的链接

是否有办法访问从剪贴板粘贴的这些图像,或者这些图像可能仅在Microsoft团队内部可见/可访问

帮帮我,欧比-万·克诺比。你是我唯一的希望

谢谢你抽出时间

编辑:谢谢您的热烈欢迎

我在这里使用onMessageActivitySync重载:

公共类BotActivityHandler:Microsoft.Bot.Builder.Teams.TeamsActivityHandler
{
[...]
受保护的重写异步任务OnMessageActivityAsync(ITurnContext turnContext,CancellationToken CancellationToken)
{
//它要么是这个url,要么是从html解析出来的url,但都会收到一个401和一个GET请求,如下面所示,或者是一个邮递员
var imageUrl=turnContext.Activity.Attachments.Where(x=>!x.ContentUrl.IsNullOrEmpty()).ToList().First().ContentUrl;
var response=await myHttpClient.GetAsync(imageUrl);
var img=await response.Content.ReadAsStreamAsync();
}
[...]
turnContext包含一个带有两个附件的活动: 一个人有这样的内容

<div><div>\n<div><span><img
src=\"https://eu-api.asm.skype.com/v1/objects/[...]/views/imgo\"
 width=\"247\" id=\"[...]\" itemscope=\"\" itemtype=\"http://schema.skype.com/AMSImage\"\"></span>\n\n</div>\n\n\n</div>\n</div>

回答为

可以使用MicrosoftAppCredentials接收JWT令牌来访问图像

var token = await new MicrosoftAppCredentials("appId", "password").GetTokenAsync();
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);

回答

可以使用MicrosoftAppCredentials接收JWT令牌来访问图像

var token = await new MicrosoftAppCredentials("appId", "password").GetTokenAsync();
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);


嗨,Josh!欢迎来到SO。谢谢你提出的明确问题。代码示例可能会在这方面有所帮助。你能提供你的代码片段吗?从你试图访问图像的地方,这是其他门户吗?401未经授权意味着你对图像有访问问题。嗨,Josh!欢迎来到SO。谢谢你提出的明确问题。代码示例可能会在此上下文中提供帮助。您能提供代码片段吗?从您试图访问图像的位置,这是其他门户吗?401未经授权意味着您对图像url有访问问题