当前位置: 首页 > 知识库问答 >
问题:

Microsoft outlook API提供404错误

万高轩
2023-03-14

我尝试通过Outlook contacts 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

这是我从Microsoft教程中摘录的代码

    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);
      }
    }

有人能说说我做错了什么吗?

共有1个答案

皇甫波峻
2023-03-14

您看到的错误(MailboxNoteNabledForRestAPI)表明您的Outlook.com邮箱尚未为API启用。不幸的是,您无法更改设置来启用它们。我们正在批量启用邮箱,因此对于特定的邮箱,您只需等待,直到启用。

如果您想获得一个测试帐户,这样您就可以免费试用Office365,或者您可以给我们发电子邮件到outlookdev@microsoft.com,请求开发人员预览outlook.com帐户。有关详细信息,请参阅https://dev.outlook.com/restgettingstarted的帐户需求部分。

 类似资料:
  • 问题内容: 我有以下控制器… 我的servlet上下文使用以下值设置… 现在,如果我转到那,我得到的视图就是userManagement.jsp,这正是我想要的… 但是,如果我转到404错误。 我看不到的是为什么会发生这种情况,因为我将requestMapping设置为与上面完全相同,并且在/ WEB-INF / views中我有一个createUser.jsp和userManagement.js

  • 我不能通过nGinx提供静态文件,而是得到404。我可以看到错误(如error.log所示),我只是不知道如何修复它。 网址。派克 settings.py (收集了一个静态文件,所有静态文件现在都在“staticfiles/”中) nginx配置 基础html 这是日志 错误日志 (静态/添加在静态url中,我看不出为什么)

  • 当我们调用时,它工作得很好,但当我们调用时,我们会得到以下404个错误: PHP致命错误:未捕获的异常GUZZLEHTTP\exception\ClientException 导致404未找到响应: 404在/var/www/html/uber/uber/vendor/guzzlehttp/Guzzle/src/exception/requestexception.php:113堆栈跟踪:#0/v

  • 问题内容: 我正在尝试在html页面中显示配置的值和角值服务中的版本代码,但显示的不是作者的名字,这是html代码 这是指令… 这是在其中配置和值的服务部分 我在开发人员控制台中遇到的错误是 问题答案: 确保将这些模块( myApp.services 和 myApp.directives )作为主要应用程序模块的依赖项加载,如下所示: 塞子: http ://plnkr.co/edit/wxuFx

  • 我正在尝试从google drive下载一个带有PyDrive的文件。我听从指示http://pythonhosted.org/PyDrive/filemanagement.html#download-文件内容。它在我自己的领域正常工作。 日志如下。 我正在尝试从我的客户的域相同的事情,它给出以下错误 我的代码下载。py在下面 是否有一些设置缺失?我能够列出我客户的谷歌驱动器中的所有文件。然而错误

  • 我正在从命令行自动化(python、boto3)产品的创建及其在服务目录中的发布。我创建产品,从响应中获取productId。然后,我使用列表启动路径拉入启动路径。当我最终开始设置产品时,我收到一个错误: 调用ProvisionProduct操作时发生错误(ResourceNotFoundException):找不到产品prod-vfwmgz65lckke。 我切换到使用aws cli,得到了相同