Microsoft Graph API не будет работать в производстве - PullRequest
0 голосов
/ 07 ноября 2018

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

Все работает в моей среде разработки, но когда я захожу на свою страницу календаря в работе, она выдает эту ошибку:

https://graph.microsoft.com/v1.0/me/calendarsresulted в ответе 401 Unauthorized`: {"error": {"code": "InvalidAuthenticationToken", "message": "Ошибка проверки маркера доступа."

Я использую тот же токен, который я получаю от oAuth для календарей. Разве это не правильный способ сделать это? И если нет, то как мне найти правильный способ сделать это и почему это будет работать?

вот часть моей страницы oauth

        // Get an access token using the authorization code grant
    $accessToken = $provider->getAccessToken('authorization_code', [
        'code'     => $_GET['code']
    ]);

    $_SESSION['refresh_token'] =$accessToken->getRefreshToken();
    $graph = new Graph();
    $graph->setAccessToken($accessToken);
    //the sesion token for calendars expires faster than our token to stay in connect, so if it expires have the user sign back in
    try {
      $user = $graph->createRequest("GET", "/me/calendars")
                    ->execute();
    } catch (Exception $e) {    //FAILS HERE
      // sessionTimeout(); exit; 
      var_dump($e);
    }

EDIT

бросая токен, я возвращаюсь в JWT. Я вижу, что в процессе разработки мой токен имеет всю информацию, в том числе о том, какие у меня есть области действия. Но в производственном токене отсутствует поле «scp». Я понятия не имею, что я делаю неправильно.

РЕДАКТИРОВАТЬ 2 Я подумал, что, может быть, мне понадобится обновить токен, но это все равно дает мне ту же ошибку.

...