ErrorItemNotFound при попытке получить календарь помещения с помощью MS Graph API - PullRequest
0 голосов
/ 12 декабря 2018

Помимо получения представлений календаря календаря пользователя (от имени пользователя), мы стараемся также получить представление календаря комнат через Graph API, используя https://graph.microsoft.com/beta/users/room1@ourdomain.com/calendarView.Это болезненный процесс, так как мы столкнулись со многими проблемами и в настоящее время застряли со следующим 404 ответом:

https://graph.microsoft.com:443/v1.0/users/room1@ourdomain.com/calendarView?startDateTime=2018-12-04T23:00:00.000Z&endDateTime=2019-02-10T22:59:59.999Z

{
  "error": {
    "code": "ErrorItemNotFound",
    "message": "The specified object was not found in the store.",
    "innerError": {
      "request-id": "358a003a-57a4-4f0e-91da-edc17c1fa2d8",
      "date": "2018-12-12T07:38:33"
    }
  }
}

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

Разрешения приложений и области OAuth2 установлены на: openid email profile offline_access https://graph.microsoft.com/Calendars.Read https://graph.microsoft.com/Calendars.Read.Shared https://graph.microsoft.com/User.Read https://graph.microsoft.com/User.ReadBasic.All https://graph.microsoft.com/User.Read.All, поэтому это не должно быть проблемой, судя по документации .

Кто-нибудь знает, как это решить?

Ответы [ 2 ]

0 голосов
/ 17 мая 2019

НАКОНЕЦ!Пройдя через это с бесчисленными специалистами службы поддержки Microsoft, каждый из которых сказал, что это не их территория и не знал, куда направить вопрос, я связался с кем-то из команды Exchange.Он предложил одну вещь, которая сработала для нас: пользователь, от имени которого вы извлекаете календарь ресурсов комнаты , должен быть делегатом этого ресурса комнаты !

Кроме того, для извлеченияИз списка ресурсов комнаты, из которого пользователь может выбрать, нам нужно было использовать конечную точку findRooms, но это работает только на API beta .Единственный недостаток этого заключается в том, что вы не можете фильтровать комнаты, делегатом которых является пользователь.Таким образом, пользователь получит список комнат, для которых он может или не сможет получить календарь.

Последний недостаток ответа calendarView ресурса комнаты состоит в том, что ответ не содержит названий собраний, запланированных в комнатах.Описание каждого события содержит только имя организатора встречи.

0 голосов
/ 16 января 2019

Я перепробовал все возможные способы, но нет способа получить доступ.Вот что я опробовал в обозревателе графиков:

Все три на v1.0 и beta.

Это не проблема с правами, потому что длямое тестирование я предоставил Graph Explorer Directory.ReadWrite.All.В результате следующая scp претензия.scope screenshot

Первые запросы кажутся наиболее многообещающими (из-за другой ошибки), я также сделал себя делегатом с полным контролем над комнатами-почтовым ящиком.Это все равно не помогло.

Запрос к https://graph.microsoft.com/v1.0/users/meetingroom1@domain.com дает результат, в результате чего описывается зал заседаний.

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity",
    "businessPhones": [],
    "displayName": "Meeting room 1",
    "givenName": null,
    "jobTitle": null,
    "mail": "meetingroom1@domain.com",
    "mobilePhone": null,
    "officeLocation": null,
    "preferredLanguage": null,
    "surname": null,
    "userPrincipalName": "meetingroom1@domain.com",
    "id": "3e0a7b7e-xxxx-xxxx-xxxx-xxxxcxxxx120"
}

После выполнения всех этих тестов я могу только заключитьчто вы не можете получить доступ к событиям в почтовом ящике комнаты.Это либо намерение (как в случае использования только помощника по планированию), либо ошибка.

Может быть, некоторые из парней из Microsoft, которые здесь присутствуют, могли бы это прояснить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...