如何解决 Withings 开发人员 API 刷新令牌在 4 小时内过期?

How to fix that Withings developer API refresh token gets expired within 4 Hours?

我已经为 Withings API (http://developer.withings.com/oauth2/). Initially, there will be processed the Authorization Token (http://developer.withings.com/oauth2/img/OauthDiagram.jpg) 的 OAuth2 实现了一个 Java 接口,它将从 Withings 后端发送到我的服务器。使用授权令牌,我成功获得了访问令牌和刷新令牌。反过来,使用访问令牌,我可以从资源服务器获取实际数据。 刷新令牌可以成功用于获取新的访问令牌,但大约只需要 4 小时。 http://developer.withings.com/oauth2/#tag/glossary 中的 "Refresh Token" 描述刷新令牌将是 "valid for one year"。所以我不知道我的错在哪里。

这是日志的截取,其中机制在下午 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 片段,因为 e. G。 renewAccessToken-Method 在下午 2 点开始工作。这可能是 Withings 后端的配置错误(我认为他们使用 GuzzleHTTP,因为在向我的服务器发送通知时在他们的用户代理中说明了这一点)?他们不会向他们提供的合作伙伴电子邮件 (http://developer.withings.com/oauth2/#tag/FAQ) 回复电子邮件。

refreshing/initial注册后REFRESH_TOKEN在'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}

4 小时内相同,但在这 4 小时后请求新的访问令牌时,也会更新并在该响应中发回。因此,在请求新的访问令牌时,必须保存该响应中的 ACCESS_TOKEN 和 REFRESH_TOKEN。