0

OneNote 提供了一个 API 来将笔记添加到 OneNote。为此,我需要进行身份验证以获取用户访问令牌并使用此令牌添加新注释和其他内容。身份验证是通过让用户输入他的 Microsoft 帐户和密码来完成的。

问题是访问令牌在一小时后过期,因此用户每次进入应用程序时都必须正确进行身份验证,我不希望那样。

我已阅读 OneNote API 指南,发现他们这样说:

OneNote API 所需的范围至少为 office.onenote_create。您使用该范围收到的令牌仅在一小时内有效,因此我们建议您也请求 wl.offline_access 范围。如果用户授予您的应用访问权限,则令牌最多可以刷新一年,或者直到用户撤销其权限。您可以在 Live Connect 开发人员中心范围和权限文档中找到更深入的信息。

这是链接

我知道您可以刷新访问令牌,并且我在范围中添加了“wl.offline_access”,但我仍然不知道如何刷新访问令牌。

4

1 回答 1

3

当您请求 wl.offline_access 时,您还将获得一个刷新令牌。您的访问令牌仍然每小时过期一次,但您可以使用刷新令牌(有效期为 1 年)来换取新的访问令牌。这是标准的 OAuth 2.0 模式。

有关如何刷新访问令牌的文档,请参阅此处的文档::http: //msdn.microsoft.com/en-us/library/dn631818.aspx

在该页面上搜索“刷新”。为了您的方便,我在此处粘贴了一段文档:

POST https://login.live.com/oauth20_token.srf    
Content-type: application/x-www-form-urlencoded

client_id=CLIENT_ID&client_secret=CLIENT_SECRET&redirect_uri=REDIRECT_URI&grant_type=refresh_token&refresh_token=REFRESH_TOKEN

此外,如果您查看GitHub 上的 OneNote Developer 示例,您还可以了解如何在各种平台上进行令牌刷新。

希望有帮助。

詹姆斯 ( @jmslau )

于 2014-08-20T16:29:35.050 回答