如何使用 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);
// });

参考: