我的目标很简单。 我想使用图形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来执行类似的操作,例如在组织中获取用户,所以我知道一般设置是正确的。
世界上任何地方的互联网上的任何人都可以使用它吗?因为它让我发疯了
答案 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的权限。由于这个问题的原始问题 被回答了。关闭它。