Azure 无法从microsoft graph api获取用户配置文件信息

Azure 无法从microsoft graph api获取用户配置文件信息,azure,oauth,microsoft-graph-api,php-curl,Azure,Oauth,Microsoft Graph Api,Php Curl,我决定从旧的azure门户创建应用程序,并将应用程序设置为多租户。 我已经将OAuth 2.0令牌端点()设置为令牌,将OAuth 2.0授权端点()设置为授权。 这是我的授权代码: 标题('位置:') 这是我获取令牌的代码: $data = array ( 'code' => $code, 'client_secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=', 'client_id' => 'xxxxx

我决定从旧的azure门户创建应用程序,并将应用程序设置为多租户。 我已经将OAuth 2.0令牌端点()设置为令牌,将OAuth 2.0授权端点()设置为授权。 这是我的授权代码: 标题('位置:')

这是我获取令牌的代码:

$data = array (
      'code' => $code,
      'client_secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=',
      'client_id' => 'xxxxxxxxxxxxxxxxxxxx',
      'grant_type' => 'authorization_code',
      'redirect_uri' => 'http://localhost/xxxxxx/contacts/connectOffice',
      'scope' =>'offline_access Contacts.ReadWrite'
    );
    $url = 'https://login.microsoftonline.com/common/oauth2/token';
    $curl = curl_init($url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);      
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
    $result = curl_exec($curl);
这是我从令牌请求中得到的结果:

排列( [令牌类型]=>承载 [expires_in]=>3599 [ext\u expires\u in]=>0 [expires_on]=>1487828228 [访问令牌]=>AQABAAAAADRNYRQ3DHRSRM-4K-ADPCJ2GHMRR3JJCVTGDVXTMOEHCFYXXXXXXXXXXXXXXXXXVU\u o8Ob\u GixKxnHPPCAA [刷新令牌]=>AQABAAAAADRxxxxxxxxxx0eWur\u igY5qiAA [id_token]=>EYJ0EXAIOIJKXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX传真PRFQ48A )

我使用此访问令牌发送GET请求以访问Microsoft graph api(),以获取用户配置文件。这是我的get请求:

$url = 'https://graph.microsoft.com/v1.0/me';
$headers = array(     
        "Authorization: Bearer ".$access_token                 
      );
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_URL, $url );               
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');              
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);               
$response=curl_exec($ch);
我得到这个错误:

排列( [错误]=>数组 ( [代码]=>InvalidAuthenticationToken [消息]=>CompactToken解析失败,错误代码:-2147184105 [innerError]=>数组 ( [请求id]=>43eae80b-c3f0-4909-a71d-4e5d3d982579 [日期]=>2017-02-22T15:09:25 )


有人能告诉我哪里出了问题吗?

删除个人信息后,你能分享令牌的内容吗?并包括整个请求-你如何从令牌端点请求令牌。@Shawntarizi我已在我的question@astaykov我已经添加了完整的授权请求代码、令牌和d读取用户配置文件假设您已正确注册应用程序并授予其访问Microsoft Graph的权限,请尝试将请求中的
范围更改为
https://graph.microsoft.com/User.Read