настройка организатора мероприятий с помощью Outlook Calendar REST API

Я использую Outlook REST API для создания событий и отправки приглашений на основе эту документацию

Я аутентифицирую вошедшего в систему пользователя и отправляю его токен-носитель через заголовок авторизации запроса и событие в формате json для его содержимого.

Если я устанавливаю «Организатор» для другого пользователя, а не для аутентифицированного, а также для свойства «IsOrganizer» значение «false», он полностью игнорируется и устанавливает текущего вошедшего в систему пользователя в качестве организатора.

Есть какие-нибудь подсказки о том, что могло происходить? Есть ли другой способ сделать это?

Спасибо!


person Nicole    schedule 26.05.2015    source источник


Ответы (2)


Это правильное поведение. Вы не можете создать событие в календаре пользователя A, но установите организатора на пользователя B.

person Jason Johnston    schedule 26.05.2015
comment
Спасибо! но могу ли я создать его в календаре пользователя Б? - person Nicole; 26.05.2015
comment
Вы не можете пройти аутентификацию как один пользователь и получить доступ к календарю другого. Однако вы можете использовать поток учетных данных клиента, который требует, чтобы администратор организации предоставил доступ к вашему приложению. Затем приложение аутентифицируется как само (а не как отдельный пользователь) и может получить доступ ко всем календарям в организации. - person Jason Johnston; 26.05.2015

Я отправляю это на случай, если кто-то еще найдет и ему понадобится ответ для этого сценария ...

Вы (учетная запись A) можете создать событие календаря от имени другого пользователя (учетная запись B) с помощью API REST Office365, если эта учетная запись имеет разрешение на отправку от имени другой учетной записи пользователя.

Вот шаги:

1) Вызовите API REST Office365 следующим образом, где {{{user2email}}} - это пользователь, для которого должно быть создано событие как (адрес электронной почты учетной записи B): https://outlook.office365.com/api/v1.0/users/ {{{user2email}}} / календарь

Это должно вернуть идентификатор календаря пользователя учетной записи B.

2) Передайте свой JSON - вот пример того, что я использовал во время модульного тестирования:

{
      "Subject": "Test - Created using Office365 Calendar REST API should be from Technology Notice",
      "IsOrganizer": "False",
      "Body": {
        "ContentType": "HTML",
        "Content": "This is where body copy goes HTML supported"
      },
      "Start": "2015-12-11T19:00:00Z",
      "End": "2015-12-11T20:00:00Z",
      "Attendees": [
        {
          "EmailAddress": {
            "Address": "[email protected]",
            "Name": "Attendee One"
          },
          "Type": "Required"
        }
      ],
      "Organizer": {
        "EmailAddress": {
          "Address": "[email protected]",
          "Name": "Technology Notice"
        }
      }
    }

«Уведомление о технологиях» будет указывать на то, кто был приглашен в календарь от.

3) Используйте идентификатор из шага 2 в своем запросе POST, например: https://outlook.office365.com/api/v1.0/users/ {{{user2email}}} / calendars / < б> {{{ID}}} / events

Примечание. Убедитесь, что вы отправляете запрос POST от имени аутентифицированной учетной записи пользователя (Учетная запись A), чьей учетной записи является почтовый ящик / календарь, которому он фактически принадлежит.

Если все в порядке, вы сможете отправить приглашение в календарь, и оно будет отображаться как исходящее из учетной записи B, а не из учетной записи A.

Надеюсь, это кому-то поможет.

person Sergio S    schedule 12.11.2015
comment
Кто бы ни проголосовал против, это неверно. Прямо передо мной рабочая модель. - person Sergio S; 13.11.2015
comment
Извините, что комментирую старый пост, но как вы проходите аутентификацию? Области OAuth не поддерживают этот сценарий. Учетная запись A не может получить доступ к календарю учетной записи B. - person Jason Johnston; 07.04.2016
comment
Отправьте учетные данные учетной записи, которую вы хотите использовать с запросом - person Sergio S; 16.04.2016