【发布时间】:2019-08-09 14:23:03
【问题描述】:
我已经为 Withings API (http://developer.withings.com/oauth2/) 的 OAuth2 实现了一个 Java 接口。最初,将处理从 Withings 后端发送到我的服务器的授权令牌 (http://developer.withings.com/oauth2/img/OauthDiagram.jpg)。使用授权令牌,我成功获得了访问令牌和刷新令牌。反过来,使用访问令牌,我可以从资源服务器获取实际数据。 刷新令牌可成功用于获取新的访问令牌,但只能在大约 4 小时内。 http://developer.withings.com/oauth2/#tag/glossary 中的“刷新令牌”描述了刷新令牌将“有效期为一年”。所以我不知道我的错在哪里。
这是该机制在下午 2 点工作但不是下午 6 点的日志截图。 大约下午 2 点,该应用被授予访问具有 USER_ID 的用户数据的权限。
Aug 08, 2019 2:00:46 PM UserAccessData renewAccessToken
INFORMATION: Withings refresh access token request: grant_type=refresh_token&client_id=CLIENT_ID&client_secret=CLIENT_SECRET&refresh_token=REFRESH_TOKEN&redirect_uri=REDIRECT_URI
Aug 08, 2019 2:00:46 PM UserAccessData renewAccessToken
INFORMATION: Withings refresh access token response: {"access_token":"ACCESS_TOKEN","expires_in":10800,"token_type":"Bearer","scope":"user.info,user.metrics,user.activity","refresh_token":"REFRESH_TOKEN","userid":USER_ID}
[...]
Aug 08, 2019 6:00:45 PM UserAccessData renewAccessToken
INFORMATION: Withings refresh access token request: grant_type=refresh_token&client_id=CLIENT_ID&client_secret=CLIENT_SECRET&refresh_token=REFRESH_TOKEN&redirect_uri=REDIRECT_URI
Aug 08, 2019 6:00:46 PM UserAccessData renewAccessToken
INFORMATION: Withings refresh access token response: {"errors":[{"message":"invalid_grant: Invalid Params: invalid refresh_token"}]}
Aug 08, 2019 6:00:46 PM AccessTokenUpdaterTask run
SEVERE: UserAccessData of User with UserID USER_ID could not be renewed and refreshed properly
我不知道我应该提供哪个 Java sn-p,因为 e. G。 renewAccessToken-Method 在下午 2 点工作。这可能是 Withings 后端的错误配置(我认为他们使用 GuzzleHTTP,因为在向我的服务器发送通知时在他们的用户代理中说明了这一点)?他们不回复他们提供的合作伙伴电子邮件 (http://developer.withings.com/oauth2/#tag/FAQ) 的电子邮件。
【问题讨论】:
-
我希望这个问题中需要一些相关的代码。它不只是单独工作,你必须写一些东西,对吗?
标签: java server oauth-2.0 refresh-token withings