Microsoft Graph findMeetingTimes конечная точка не работает - PullRequest
0 голосов
/ 01 апреля 2019

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

Я использую Microsoft Graph API для составления списка и создания событий календаря, однако я не могу заставить конечную точку findMeetingTimes работать.

Это мой авторизационный URL:

https://login.microsoftonline.com/consumers/oauth2/v2.0/authorize?client_id=xxxxx&response_type=code&redirect_uri=xxxxx&response_mode=form_post&scope=openid%20profile%20User.ReadWrite%20User.ReadBasic.All%20Sites.ReadWrite.All%20Contacts.ReadWrite%20People.Read%20Notes.ReadWrite.All%20Tasks.ReadWrite%20Mail.ReadWrite%20Files.ReadWrite.All%20Calendars.ReadWrite&state=12345

Затем я запрашиваю токен доступа, используя те же области:

$request = json_decode($guzzle->post('https://login.microsoftonline.com/common/oauth2/v2.0/token', [
            'headers' => [
                'Content-Type' => 'application/x-www-form-urlencoded'
            ],
            'form_params' => [
                'client_id' => 'xxxxx',
                'scope' => 'openid profile User.ReadWrite User.ReadBasic.All Sites.ReadWrite.All Contacts.ReadWrite People.Read Notes.ReadWrite.All Tasks.ReadWrite Mail.ReadWrite Files.ReadWrite.All Calendars.ReadWrite',
                'code' => $auth_code,
                'grant_type' => 'authorization_code',
                'redirect_uri' => 'xxxxx',
                'client_secret' => 'xxxxx'
            ],
        ])->getBody()->getContents());

После этого я пробую конечную точку findMeetingTimes, используя:

$request = json_decode($guzzle->post('https://graph.microsoft.com/v1.0/me/findMeetingTimes', [
            'headers' => [
                'Authorization' => 'Bearer ' . $accessToken,
                'Content-Type' => 'application/json',
            ],
            'body' => '{
              "attendees": [
                {
                  "type": "required",
                  "emailAddress": {
                    "name": "My Name",
                    "address": "myemail@hotmail.com"
                  }
                }
              ],
              "timeConstraint": {
                "activityDomain":"work",
                "timeslots": [
                  {
                    "start": {
                      "dateTime": "2019-04-02T09:00:00",
                      "timeZone": "Pacific Standard Time"
                    },
                    "end": {
                      "dateTime": "2019-04-03T17:00:00",
                      "timeZone": "Pacific Standard Time"
                    }
                  }
                ]
              }
            }',
        ])->getBody()->getContents());

Однако он продолжает возвращаться:

401 - Unauthorized: Access is denied due to invalid credentials.

You do not have permission to view this directory or page using the credentials that you supplied.

Кто будет моим героем? : /

1 Ответ

3 голосов
/ 01 апреля 2019

Это по замыслу.Из документации :

Примечание Действие findMeetingTimes в настоящее время доступно для рабочих или школьных почтовых ящиков Office 365, но не для личных, outlook.com почтовых ящиков.

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