如何使用 googleapis npm 包从刷新令牌获取新的访问令牌
How to get new access token from refresh token with googleapis npm package
我似乎无法在任何地方找到这个问题的答案。所有文档都说刷新令牌用于获取新的访问令牌,但没有任何地方解释这实际上是如何工作的。
通常我会使用此功能,并附上您从 google 同意页面获得的代码:
oauth2Client.getToken(code)
。
所以我会期待这样的事情:
oauth2Client.getTokenWithRefreshToken(refresh_token)
。
但不是。
我只是误解了刷新令牌的概念吗?
如果您已经有了自己的刷新令牌,并且想使用 Google API,并使用从使用 googleapis 的刷新令牌检索到的访问令牌来获取 Node.js,下面的示例脚本怎么样?
示例脚本:
const { google } = require("googleapis");
const oauth2Client = new google.auth.OAuth2(
"###", // Please set your client ID.
"###", // Please set your client secret.
"###", // Please set your redirect uri.
);
oauth2Client.setCredentials({
refresh_token: "###" // Please set your refresh token.
});
// If you want to retrieve the access token from the refresh token, you can use the following sample script.
oauth2Client.getAccessToken((err, token) => {
if (err) {
console.log(err);
return;
}
console.log(token);
});
// The following script is a sample script for using Drive API.
// In this case, it is required to include the scope for using Drive API. Please be careful this.
// const drive = google.drive({ version: "v3", auth: oauth2Client });
// drive.files.list({ pageSize: 10, fields: "files(name)" }, (err, res) => {
// if (err) {
// console.log(err);
// return;
// }
// console.log(res.data);
// });
参考:
我似乎无法在任何地方找到这个问题的答案。所有文档都说刷新令牌用于获取新的访问令牌,但没有任何地方解释这实际上是如何工作的。
通常我会使用此功能,并附上您从 google 同意页面获得的代码:
oauth2Client.getToken(code)
。
所以我会期待这样的事情:
oauth2Client.getTokenWithRefreshToken(refresh_token)
。
但不是。
我只是误解了刷新令牌的概念吗?
如果您已经有了自己的刷新令牌,并且想使用 Google API,并使用从使用 googleapis 的刷新令牌检索到的访问令牌来获取 Node.js,下面的示例脚本怎么样?
示例脚本:
const { google } = require("googleapis");
const oauth2Client = new google.auth.OAuth2(
"###", // Please set your client ID.
"###", // Please set your client secret.
"###", // Please set your redirect uri.
);
oauth2Client.setCredentials({
refresh_token: "###" // Please set your refresh token.
});
// If you want to retrieve the access token from the refresh token, you can use the following sample script.
oauth2Client.getAccessToken((err, token) => {
if (err) {
console.log(err);
return;
}
console.log(token);
});
// The following script is a sample script for using Drive API.
// In this case, it is required to include the scope for using Drive API. Please be careful this.
// const drive = google.drive({ version: "v3", auth: oauth2Client });
// drive.files.list({ pageSize: 10, fields: "files(name)" }, (err, res) => {
// if (err) {
// console.log(err);
// return;
// }
// console.log(res.data);
// });