Microsoft Graph API将无法在生产中使用

时间:2018-11-06 21:21:31

标签: php outlook microsoft-graph

我已经建立了网站,因此我可以使用Oauth进行单点登录并添加访问权限,以便将在我的网站上创建的日历条目发布到用户的Outlook日历中。

一切都适用于我的开发环境,但是当我进入生产环境中的日历页面时,会抛出此错误:

  

https://graph.microsoft.com/v1.0/me/calendars resulted in a 401未经授权的响应:{“错误”:{“代码”:“ InvalidAuthenticationToken”,“消息”:“访问令牌验证失败。”

我正在使用从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);
    }

编辑

将令牌扔回到JWT中,我发现在开发过程中,令牌具有包括我所拥有的范围在内的所有信息。但是在生产中,令牌缺少“ scp”字段。我不知道我在做什么错。

编辑2 我以为也许我需要刷新令牌,但这仍然给我同样的错误。

0 个答案:

没有答案