Android- One Note访问令牌刷新

时间:2014-08-20 10:51:11

标签: android api access-token onenote

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

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

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

  

OneNote API所需的范围至少为   office.onenote_create。您使用该范围收到的代币只会   有效期为一小时,所以我们建议您也要求   wl.offline_access范围。如果用户授予您的应用访问权限,则表示令牌   可以刷新长达一年,或直到用户撤销他们的   允许。您可以在Live Connect中找到更多深入信息   开发人员中心范围和权限文档。

以下是link

我知道你可以刷新访问令牌,我已经添加了" wl.offline_access"在范围内,但我仍然不知道如何刷新访问令牌。

1 个答案:

答案 0 :(得分: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

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

希望有所帮助。

詹姆斯(@jmslau