Выборка сообщений из пустого канала приводит к 403 в Microsoft Teams

#http #microsoft-graph-api #microsoft-teams #fetch-api

#http #microsoft-graph-api #microsoft-teams #fetch-api

Вопрос:

У меня возникли проблемы с извлечением сообщений канала из команды Microsoft. У меня есть приложение javascript, которое сканирует все команды в организации и извлекает количество сообщений со всех каналов во всех командах. Это работает замечательно, поскольку возвращает правильное количество сообщений, проблема в том, что когда приложение пытается получить сообщение из канала, где никто не отправлял сообщение в канале, возникает ошибка HTTP с кодом ошибки 403 (запрещено). Несмотря на то, что приложение успешно выполняет то, что оно должно делать, у меня не может быть приложения, которое отправляет 50 сердитых красных сообщений каждый раз, когда оно выполняет http-вызов.

Вызов, который я использую, выглядит следующим образом https://graph.microsoft.com/beta/teams /{Идентификатор команды}/каналы/{Идентификатор канала}/сообщения

Кто-нибудь знает, разрешимо ли это? Если нет, можно ли проверить, пуст ли канал? И если это не вариант; есть ли кто-нибудь, чтобы скрыть эти грязные сообщения об ошибках с консоли?

Редактировать #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

I объект ответа кажется правильным:

   {  
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#teams('90baabba-1b5e-471c-a163-8a9b4b680de7')/channels('19:01c741f599e547f0b9b38296283b7fec@thread.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: {…}}
  

Комментарии:

1. Мы попытались повторить эту проблему с нашей стороны и не смогли увидеть ошибку 403, если вы, пожалуйста, опубликуете текст вашего запроса?

2. @Manish-MSFT Я добавил вызов, который я делаю, в Graph API. Тело запроса пустое, поскольку в документации указано «Не предоставлять тело запроса для этого метода».

3. @Grelnog- Да, ваш запрос правильный, но мы не видим, чтобы это происходило с нашей стороны. Не могли бы вы проверить, корректен ли ваш токен предъявителя и имеет ли он требуемые разрешения. Я не вижу никакой другой проблемы, кроме этого.

4. @Manish-MSFT Ах, я вижу! Я обновил свой вопрос.

5. Вы пробовали использовать Postman? Сообщите нам здесь, если вы все еще получаете 403.

Ответ №1:

Только членам команды разрешается читать сообщения. Администраторы могут управлять командой, то есть выполнять операции CRUD с командами, каналами, вкладками и т.д. Однако они не могут читать сообщения. Это сделано намеренно, и у нас нет планов менять это в ближайшем будущем