与 microsoft 团队聊天时发送消息时出现 401 错误 Graph

时间:2021-01-07 01:43:43

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

我有一个方案,用于从我的 Microsoft 团队自定义选项卡向聊天窗口发送通知。 因此,我正在尝试调用 Microsoft Graph API 以将消息发送到特定的 chatId:Post https://graph.microsoft.com/beta/chats/${chatId}/messages 我可以成功获取 access_token ,但是在调用 post 请求以将通知发送到 chatId 时,出现“401 UnAuthorized”错误。 我的代码有什么问题?

var message = {
            "body": {
                   "content": "Hello World"
                }
               };
                    fetch(`https://graph.microsoft.com/beta/${context.userObjectId}/chats/${chatId}/messages`, {
                        method: "POST",
                        mode: "cors",
                        cache: "no-cache",
                        headers: {
                           
                            'Content-Type': "application/json;charset=utf-8",
                            'Authorization': `Bearer ${fetched_accessToken}`
                        },
                        body: JSON.stringify(message)
                    }).then((response) => {
                         alert(response.statusText);
                    }).catch((err) => {
                       alert(err);
                    });    
                } 

这段代码有什么问题?

2 个答案:

答案 0 :(得分:1)

如果您已经有一个 Teams 应用程序,用于您的选项卡,并且您还想在聊天中进行交流,您应该考虑创建一个机器人,并使用主动消息传递。在 https://docs.microsoft.com/en-us/microsoftteams/platform/bots/how-to/conversations/send-proactive-messages?tabs=dotnethttps://docs.microsoft.com/en-us/graph/teams-proactive-messaging

查看更多

答案 1 :(得分:0)

  • 我看到您正在尝试使用客户端凭据流(应用程序权限),但上述 API 调用仅适用于委派的权限。这是documentation。所以它是“按设计”设计的,并且只能以这种方式工作。因此,您看到了错误。
  • 您可以使用委托权限尝试上述 API 调用,然后您 会看到它会起作用。