微软的Outlook API给404错误
我尝试通过Outlook联系人REST API获取用户联系人。 我成功获得访问令牌,但是当我尝试获取联系人时,我收到404错误。
这是传送的网址
https://outlook.office.com/api/v1.0/me/contacts?%24select=GivenName%2CSurname%2CEmailAddresses&%24orderby=GivenName&%24top=10
和标题
User-Agent: php-tutorial/1.0 Authorization: Bearer ----token here----- Accept: application/json client-request-id: guid here return-client-request-id: true X-AnchorMailbox: user_email
这是代码,我从微软教程中直接获取
public static function makeApiCall($access_token, $user_email, $method, $url, $payload = NULL) { // Generate the list of headers to always send. $headers = array( "User-Agent: php-tutorial/1.0", // Sending a User-Agent header is a best practice. "Authorization: Bearer ".$access_token, // Always need our auth token! "Accept: application/json", // Always accept JSON response. "client-request-id: ".self::makeGuid(), // Stamp each new request with a new GUID. "return-client-request-id: true", // Tell the server to include our request-id GUID in the response. "X-AnchorMailbox: ".$user_email // Provider user's email to optimize routing of API call ); $curl = curl_init($url); switch(strtoupper($method)) { case "GET": // Nothing to do, GET is the default and needs no // extra headers. error_log("Doing GET"); break; case "POST": error_log("Doing POST"); // Add a Content-Type header (IMPORTANT!) $headers[] = "Content-Type: application/json"; curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $payload); break; case "PATCH": error_log("Doing PATCH"); // Add a Content-Type header (IMPORTANT!) $headers[] = "Content-Type: application/json"; curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PATCH"); curl_setopt($curl, CURLOPT_POSTFIELDS, $payload); break; case "DELETE": error_log("Doing DELETE"); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "DELETE"); break; default: error_log("INVALID METHOD: ".$method); exit; } curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); $response = curl_exec($curl); error_log("curl_exec done."); $httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE); error_log("Request returned status ".$httpCode); if ($httpCode >= 400) { return array('errorNumber' => $httpCode, 'error' => 'Request returned HTTP error '.$httpCode); } $curl_errno = curl_errno($curl); $curl_err = curl_error($curl); if ($curl_errno) { $msg = $curl_errno.": ".$curl_err; error_log("CURL returned an error: ".$msg); curl_close($curl); return array('errorNumber' => $curl_errno, 'error' => $msg); } else { error_log("Response: ".$response); curl_close($curl); return json_decode($response, true); } }
有人能说我做错了吗?
您看到的错误( MailboxNotEnabledForRESTAPI
)表示尚未为您的Outlook.com邮箱启用API。 不幸的是,您无法更改设置来自己启用它们。 我们正在批量启用邮箱,因此对于那个特定的邮箱,您只需等待它启用即可。
如果您想获得测试帐户,以便免费试用Office 365,或者您可以发送电子邮件至outlookdev@microsoft.com以请求开发人员预览Outlook.com帐户。 有关完整的详细信息,请参阅https://dev.outlook.com/RestGettingStarted上的帐户要求部分。
链接地址: http://www.djcxy.com/p/48607.html