【发布时间】:2021-01-07 01:43:43
【问题描述】:
我有一个从我的 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);
});
}
这段代码有什么问题?
【问题讨论】:
-
我尝试使用 FormData 作为正文,但出现“网络错误”let data = new FormData(); data.append('client_id', 'xxxxx'); data.append('范围', 'graph.microsoft.com/.default'); data.append('client_secret', 'xxxx'); data.append('grant_type', 'client_credentials');
-
好吧,我可以通过以不同方式调用主体参数来获取 access_token : const data = "client_id=xxxxxx&scope=graph.microsoft.com/.default&client_secret =xxxxxxx&grant_type=client_credentials";但是在将消息发布到聊天窗口时仍然出现 404(未经授权)错误
-
我看到您正在尝试使用客户端凭据流(应用程序权限),但上述 API 调用仅适用于委派权限。它是“按设计”的,并且仅以这种方式工作。因此,您会看到错误。您可以使用委派权限尝试上述 API 调用,您会发现它会起作用。这是documentation。
-
如果有帮助请告诉我。
标签: reactjs axios microsoft-graph-api microsoft-teams microsoft-graph-teams