gpt4 book ai didi

java - One Note Api 拒绝承载 token ,错误 401

转载 作者:太空宇宙 更新时间:2023-11-04 11:49:24 24 4
gpt4 key购买 nike

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

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 Token,如果我在 Debug模式下查看,HttpGet-Request 的 header 看起来像这样:

Token in the HtppGet-Header

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

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

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

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

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

那么我的权限范围是否错误?

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

最佳答案

是的,您没有合适的范围。

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

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

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

关于java - One Note Api 拒绝承载 token ,错误 401,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42001541/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com