InvalidAuthenticationToken 和 CompactToken 问题 - Microsoft Graph 使用 PHP Curl

InvalidAuthenticationToken and CompactToken issues - Microsoft Graph using PHP Curl

我能够通过 oauth(参数:代码)等让用户登录成功获取 access_token。但是,每次我尝试 post 授权 header(通过 php)到图形端点(例如 /me),我最终收到此错误:

{
error: {
code: "InvalidAuthenticationToken",
message: "CompactToken parsing failed with error code: -2147184105",
innerError: {
request-id: "59cc0e42-90b7-445a-8bf7-009ff476bcbe",
date: "2016-02-27T04:39:09"
}
}
}

什么是 CompactToken 解析?有没有办法找出解决这个问题的方法?

注意:在撰写本文时,没有 PHP Microsoft Graph SDK,所以我只是使用 php

进行 curl 调用

此错误显然是由于在 curl 请求中将 OAuth 令牌作为 OAuth 而不是 Bearer 发送。

这触发了上述错误:

curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                                          
    'Content-Type: application/json',                                                                                
    'Content-Length: 0',
    'Authorization: OAuth '.$token)                                                                       
);        

这产生了成功的响应:

curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                                          
    'Content-Type: application/json',                                                                                
    'Content-Length: 0',
    'Authorization: Bearer '.$token)                                                                       
);