【发布时间】:2018-05-31 22:35:05
【问题描述】:
我已经实现了获取 access_token、refresh_token 和 expire_date 的代码。 所有这些值都已存储在数据库中。
现在我需要一种方法来获取另一个 access_token,以防旧的过期而不使用 google-api-nodejs-client 包
原因是这个模块最近有bug,你可以在这里查看(我的评论是最新的) https://github.com/google/google-api-nodejs-client/issues/869#issuecomment-352401977 https://github.com/google/google-api-nodejs-client/issues/894.
目前,我尝试了类似的方法
GoogleTokens.findOne({isObsolete: false}).then((token) => {
let subscriptionsGetUrl = "https://www.googleapis.com/androidpublisher/v2/applications/" + req.query.packageName + "/purchases/subscriptions/" + req.query.subscriptionId + "/tokens/" + req.query.token + "?access_token=" + token.accessToken;
request(subscriptionsGetUrl, function (error, response, body) {
if (error) {
throw error;
}
res.success(JSON.parse(body).expiryTimeMillis);
});
});
但是access_token过期就会失效。
谢谢。
【问题讨论】:
-
您需要不使用 google-api-nodejs-client 来检索新的访问令牌。如果您有刷新令牌,则可以通过 POST 请求使用刷新令牌检索新的访问令牌。你需要这样的方法。我的理解正确吗?
-
@Tanaike:嗨,我的意思是我需要检测access_token何时过期,届时我可以使用refresh_token请求一个新的。问题是,在官方文档中,我找不到如何检测access_token是否过期。
-
感谢您的回复。我发布了一个答案。请确认。
标签: node.js google-api google-api-nodejs-client