【发布时间】:2021-01-04 09:56:51
【问题描述】:
我在从 Microsoft 团队提取频道消息时遇到问题。我有一个 javascript 应用程序,它爬过组织中的所有团队,并从所有团队的所有渠道中提取消息数量。它的工作原理非常好,因为它返回了正确数量的消息,问题是当应用程序尝试从没有人在通道中发送消息的通道中获取消息时,会出现错误代码 403(禁止)的 HTTP 错误.尽管该应用程序成功地完成了它应该做的事情,但我不能让一个应用程序在每次进行 http 调用时都发送 50 条愤怒的红色消息。
我正在使用的电话如下 https://graph.microsoft.com/beta/teams/{teamID}/channels/{channelID}/messages
有人知道这是否可以解决吗?如果没有,是否可以检查通道是否为空?如果那不是一种选择;有没有人从控制台隐藏那些肮脏的错误消息?
编辑#1
调用我使用的api:
let header = new Headers();
header.append("Authorization", "Bearer " + accessToken);
header.append("Content-Type", "application/json");
fetch("https://graph.microsoft.com/beta/teams/232808c2-d500-47b0-9ead-e238c5e2ab95/channels/19:69a01be632994d123014bbae1aa5db1e@thread.tacv2/messages", {method:"GET", headers: header})
编辑#2
我的响应对象似乎是正确的:
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#teams('90baabba-1b5e-471c-a163-8a9b4b680de7')/channels('19%3A01c741f599e547f0b9b38296283b7fec%40thread.skype')/messages",
"@odata.count": 0,
"value": []
}
问题是当我查看谷歌浏览器>开发工具>控制台时,获取仍然显示错误:
GET https://graph.microsoft.com/beta/teams/4f460179-4691-42e5-8677-9101dcdb65fe/channels/19:3497f5b8f9f54149919631b32d21e608@thread.tacv2/messages 403 (Forbidden)
当我在控制台记录错误时,它只显示为:
error: {code: "Forbidden", message: "Forbidden", innerError: {…}}
【问题讨论】:
-
我们,在我们最后尝试重现此问题,但看不到 403 错误,请云您发布您的请求正文?
-
@Manish-MSFT 我已将我正在进行的调用添加到 Graph API。请求正文为空,因为文档 documentation 声明“不要为此方法提供请求正文。”
-
@Grelnog- 是的,您的请求是正确的,但我们没有看到这种情况发生。您能否检查您的不记名令牌是否正确并具有所需的权限。除此之外,我没有看到任何其他问题。
-
@Manish-MSFT 啊,我明白了!我已经更新了我的问题。
-
您尝试过使用 Postman 吗?如果您仍然收到 403,请在此处告诉我们。
标签: http microsoft-graph-api microsoft-teams fetch-api