使用Microsoft Graph API C#将聊天消息发送到Microsoft Teams频道

时间:2020-03-06 09:42:06

标签: microsoft-graph-api microsoft-graph-teams

我的目标很简单。 我想使用图形API将自动聊天消息发送到MS Teams频道。

这似乎是图形API的beta功能,仅在Microsoft.Graph.Beta中可用。

我已阅读文档,并一直在尝试遵循以下示例:

https://docs.microsoft.com/en-us/graph/api/channel-post-messages,我在Azure门户中设置了所有正确的权限。我一直收到尝试过的“未知错误”:

var graphServiceClient = MicrosoftGraphService.GetGraphServiceClient();

            var chatMessage = new ChatMessage
            {
                Subject = null,

                Body = new ItemBody
                {
                    ContentType = BodyType.Text,
                    Content = messageText
                }

            };

            var response = await graphServiceClient.Teams["77f9c17f-54ca-4275-82d4-fff7esdacda1"].Channels["2007765c-8185-4cc7-8064-fb1b10f27e6b"].Messages.Request()
               .AddAsync(chatMessage);

我还试图查看我是否可以从团队中得到任何东西:

var teams = await graphServiceClient.Teams["77f9c17f-54ca-4275-2sed4-ffsde59acda1"].Request().GetAsync();

同样,我得到的是未知错误,我之前使用过GRAPH API来执行类似的操作,例如在组织中获取用户,所以我知道一般设置是正确的。

世界上任何地方的互联网上的任何人都可以使用它吗?因为它让我发疯了

1 个答案:

答案 0 :(得分:1)

这里有同样的问题:

用户或组一切正常,但我无法从团队获得任何信息(unknownError)

所有ID均正确无误

这是我为该应用设置的授权:

  • 阅读所有用户的团队合作活动供稿
  • 阅读所有组
  • 将团队合作活动发送给任何用户
  • 获取所有团队的名单

这是我的代码(基于microsoft daemon app scenario

可以访问令牌

JsonResponseMiddleware

结果:

var graphClient = new GraphServiceClient(
    "https://graph.microsoft.com/beta",
    new DelegateAuthenticationProvider(async (requestMessage) =>
    {
        requestMessage.Headers.Authorization =
            new AuthenticationHeaderValue("Bearer", result.AccessToken);
    }));

var chatMessage = new ChatMessage
{
    Subject = "Message de test",
    Body = new ItemBody
    {
        ContentType = BodyType.Html,
        Content = "Contenu de test"
    }
};

await graphClient.Teams["218a4b1d-84d5-48a2-97a0-023e4e4c3e85"].Channels["19:adbf8ddf37a049aa9f63a0f8ee0e8054@thread.tacv2"].Messages
    .Request()
    .AddAsync(chatMessage);

编辑(2020-04-01):

暂时没有解决方案:页面"Create chatMessage in a channel" in ms doc(反馈部分)的底部有评论的答案

到目前为止,似乎无法授予应用程序发送chatMessage的权限。

RamjotSingh于2019年6月11日发表了评论

@ pythonpsycho1337-如上面的权限表所述,应用程序 该API目前仅不支持上下文。


RamjotSingh在2019年12月16日发表了评论

支持应用程序权限是我们计划要做的事情,但我们还没有日期。


RamjotSingh在一天前发表了评论

获得申请后,我们将在Microsoft Graph Blog上共享 此API的权限。由于这个问题的原始问题 被回答了。关闭它。