Microsoft Graph API продолжает возвращать 401 несанкционированных - 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 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
  &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 - Неавторизовано: доступ запрещен из-за неверных учетных данных.

У вас нет разрешения на просмотр этого каталога или страницы с использованием предоставленных вами учетных данных.

Кто-нибудь знает, что мне не хватает?Обратите внимание, что я не использую учётную / учебную учетную запись Microsoft, только обычную.(Это имеет значение?)

1 Ответ

2 голосов
/ 02 апреля 2019

Невозможно вызвать эту конечную точку с помощью личных учетных записей, это очень четко указано в документации

enter image description here

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