【问题标题】:One Note Api rejects Bearer Token, Error 401One Note Api 拒绝承载令牌,错误 401
【发布时间】:2017-02-06 16:09:44
【问题描述】:

我在向 One Note API 发送不记名令牌时遇到问题。

String returnUri = "https://login.live.com/oauth20_token.srf";
HttpClient client = HttpClientBuilder.create().build();
HttpPost tokenRequest = new HttpPost(returnUri);
tokenRequest.setHeader(HttpHeaders.CONTENT_TYPE, "application/x-www-form-urlencoded");
tokenRequest.setEntity(new UrlEncodedFormEntity(Connection.getParametersForURLBody(), Consts.UTF_8));
tokenRequest.addHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0");
HttpResponse tokenResponse = client.execute(tokenRequest);
HttpGet getTopFiveNotebooks = new HttpGet("https://www.onenote.com/api/v1.0/me/notes/notebooks?top=5");

getTopFiveNotebooks.setHeader(HttpHeaders.AUTHORIZATION, "Bearer " + Connection.getValueByKey("access_token", Connection.getTokenInJson(tokenResponse)));

我得到Bearer TokenHttpGet-Request 的标头看起来像这样,如果我在调试模式下查看它:

但是当我尝试执行获取时,API 给了我一个401 Unauthorized 错误。

我的范围是scope=wl.basic+onedrive.readwrite,所以令牌应该拥有它需要的所有权限。

更新:如果我使用我的 microsoft 帐户登录 https://apigee.com/onenote/embed/console/onenote/ 并将访问令牌从那里复制到这段代码中:

getTopFiveNotebooks.setHeader(HttpHeaders.AUTHORIZATION, "Bearer " + acces-key-from-the apigee-console)

它执行获取并返回给我Status 200 而不是401

那么我的权限范围错了吗?

编辑:我的范围是错误的。

【问题讨论】:

  • 你找到解决这个问题的方法了吗?

标签: java apache apache-httpclient-4.x onenote onenote-api


【解决方案1】:

是的,你没有正确的范围。

https://msdn.microsoft.com/en-us/library/office/dn807159.aspx

您至少需要“office.onenote”才能获取用户的笔记本。

顺便说一句,如果您查看 401 响应的正文,您会发现缺少哪些范围。

【讨论】:

    【解决方案2】:

    以下是一些可能发生错误的情况:

    1. 请注意范围字符串也必须编码,所以 而不是+,你应该使用%20
    2. 还要确保您使用的此函数返回任何内容: Connection.getTokenInJson(tokenResponse)
    3. 试试这个对我来说很好的权限范围:

      "office.onenote%20office.onenote_create%20office.onenote_update_by_app%20office.onenote_update"
      

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-23
      相关资源
      最近更新 更多