[英]how to insert an attachment in a timeline using google-api-nodejs-client?
[英]How to handle Google API access_token expired without using google-api-nodejs-client?
我已經實現了獲取access_token,refresh_token和expire_date的代碼。 所有這些值已存儲在數據庫中。
現在,我需要一種方法來獲取另一個access_token,以防舊的過期而不使用google-api-nodejs-client軟件包
原因是該模塊最近有錯誤,您可以在這里檢查(我的評論是最新的) 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過期時,它將失敗。
謝謝。
這個答案怎么樣? 您可以使用OAuth2 API檢索訪問令牌的到期時間。 如果您要在沒有google-api-nodejs-client的情況下進行檢索,則可以使用以下方法。
var uri = "https://www.googleapis.com/oauth2/v3/tokeninfo?access_token=" + accesstoken;
request.get({uri: uri}, (err, res, body) => {
console.log(body)
});
{
"azp": "#####",
"aud": "#####",
"sub": "#####",
"scope": "#####",
"exp": "1234567890", // Expiration time
"expires_in": "3600", // Remaining time
"access_type": "offline"
}
{
"error_description": "Invalid Value"
}
我從以下文件中獲得了上述方法。
如果這對您沒有用,對不起。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.