从空渠道中获取消息会导致Microsoft Teams中的403

问题描述

我在从Microsoft团队提取频道消息时遇到问题。我有一个javascript应用程序,可爬网组织中的所有团队并提取所有团队中所有渠道的消息数量。它可以返回正确数量的消息,因此效果非常好,问题是当应用尝试从没有人在该通道中发送消息的通道中获取消息时,HTTP错误代码为ErrorCode 403(禁止) 。即使该应用程序成功完成了预期的工作,但我仍然没有一个应用程序每次发出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": [] 
  }

问题在于,当我在Google Chrome>开发工具>控制台中查看时,提取仍显示错误:

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: {…}}

解决方法

只允许团队成员阅读消息。管理员可以进行团队管理,即对团队,渠道,标签等进行CRUD操作,但是他们无法阅读消息。这是故意的,我们没有计划在不久的将来对此进行更改

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...