首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >微软图形GetPhoto没有在微软团队中工作

微软图形GetPhoto没有在微软团队中工作
EN

Stack Overflow用户
提问于 2016-12-21 02:42:03
回答 1查看 253关注 0票数 1

在对Azure AD进行身份验证之后,我的bot可以通过下面的代码从Microsoft Graph中检索当前用户照片,该代码将照片作为附件添加到响应消息中:

代码语言:javascript
复制
            HttpClient client2 = new HttpClient();
            client2.DefaultRequestHeaders.Add("Authorization", $"Bearer {accessToken}");
            var response2 = await client2.GetByteArrayAsync("https://graph.microsoft.com/v1.0/me/photo/$value");

            Activity replyToConversation = (Activity)context.MakeMessage();

            replyToConversation.Type = "message";
            replyToConversation.Attachments.Add(new Attachment()
            {
                Content = response2,
                ContentType = "image/jpeg"
            });

            await context.PostAsync(replyToConversation);
            context.Wait(MessageReceivedAsync);

在Web聊天通道中,一切正常工作,但由于某种原因,图片没有显示在Microsoft Teams通道中,而bot回答了默认的错误消息:“对不起,我的bot代码有问题。”

拜托,有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-21 12:06:16

首先,我将检查附件数组是否为空。通常是这样的,因此您可能会得到一个空引用异常。因此,在将附件添加到列表之前添加以下内容:

代码语言:javascript
复制
replyToConversation.Attachments = new List<Attachment>();

如果在此之后仍未看到图像,则可以尝试构建一个"url“,将字节转换为base64字符串表示,并将其设置为ContentUrl,而不是将字节数组设置为附件的内容。

代码语言:javascript
复制
string url = "data:image/jpeg;base64," + Convert.ToBase64String(response2)

var replyToConversation = context.MakeMessage();
replyToConversation.Attachments = new List<Attachment>();
replyToConversation.Attachments.Add(new Attachment()
{
     ContentUrl = url,
     ContentType = "image/jpeg"
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41254285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档