簡體   English   中英

通過剪貼板添加時無法訪問 Microsoft Teams Activity 中的圖像

[英]Cannot access images from Microsoft Teams Activity when added by clipboard

我正在開發一個機器人,它通過 Botframework 從 Teams 接收消息並將它們發送到另一個應用程序。 我正在使用 .NET 核心。

到目前為止一切正常,我可以移動文本、表情符號、文件等。但是剪貼板中的圖像有問題。

發送普通文件時,我可以使用從 Botframework 收到的活動的 Attachment.Content["downloadUrl"] 訪問它。

但是當我從剪貼板插入圖像時,它以另一種方式存儲,通過 Activity 我得到兩個具有不同 url 的附件(一個用於布局,一個用於圖像資源,我想?),如下圖所示,但是在嘗試時要獲取圖像,我會收到 401 Unauthorized。

有沒有辦法訪問從剪貼板粘貼的這些圖像,或者這些圖像可能只能從 Microsoft Teams 內部看到/訪問?

幫幫我,歐比旺·克諾比。 你是我唯一的希望。

感謝您的時間!

編輯:感謝您的熱烈歡迎!

我在這里使用 OnMessageActivityAsync 重載:
https://docs.microsoft.com/en-us/microsoftteams/platform/bots/bot-basics?tabs=csharp#bot-logic

    public class BotActivityHandler : Microsoft.Bot.Builder.Teams.TeamsActivityHandler
    {
        [...]

        protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
        {
            // it's either this url or the one parsed from the html, but both receive a 401 with a GET request like below or with Postman
            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>

另一個像 ContentUrl

"https://smba.trafficmanager.net/emea/v3/attachments/[...]/views/original"

從 Microsoft Teams 收到的活動

https://github.com/MicrosoftDocs/msteams-docs/issues/1561中回答

可以使用 MicrosoftAppCredentials 接收 JWT 令牌來訪問圖像。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM