googleapi/drive 在 node.js

googleapi/drive in node.js

我正在尝试使用 Node.js 集成 googleapi/drive 并且我还需要将 API 集成到 React.js.

我遇到的问题是我在前端收到一些奇怪的错误消息。

我在Node.js中有以下代码。

      import { auth, drive } from "@googleapis/drive"
      ...
      const driveAuth = new auth.GoogleAuth({
        keyFilename: path.join(__dirname, '../oauth2.keys.json'),
        scopes: [
          'https://www.googleapis.com/auth/drive',
          'https://www.googleapis.com/auth/drive.appdata',
          'https://www.googleapis.com/auth/drive.file',
        ],
      })
      const authClient = await driveAuth.getClient()

      const driveService = await drive({
        auth: authClient,
      }).files.list()

如果我在前端集成这个 API,然后我会收到一条错误消息。

message: "Unable to load endpoint drive(\"undefined\"): ctr is not a constructor"

如果我检查 GoogleAuth 的控制台日志,则会得到以下信息。

JWT {
  _events: [Object: null prototype] {},
  _eventsCount: 0,
  _maxListeners: undefined,
  transporter: DefaultTransporter {},
  credentials: { refresh_token: 'jwt-placeholder', expiry_date: 1 },
  eagerRefreshThresholdMillis: 300000,
  forceRefreshOnFailure: false,
  certificateCache: {},
  certificateExpiry: null,
  certificateCacheFormat: 'PEM',
  refreshTokenPromises: Map(0) {},
  _clientId: undefined,
  _clientSecret: undefined,
  redirectUri: undefined,
  email: undefined,
  keyFile: 'E:\work\backend\oauth2.keys.json',
  key: undefined,
  keyId: undefined,
  scopes: undefined,
  subject: undefined,
  additionalClaims: undefined,
  defaultServicePath: undefined,
  useJWTAccessWithScope: undefined,
  defaultScopes: undefined,
  [Symbol(kCapture)]: false
}

我的最终目标是在 google 驱动器中创建一个文件夹。

我已经在我的控制台中启用了 google 驱动器 api,并使用 OAuth2 客户端 ID 创建了一个凭据。

怎么了?我想我的 GoogleAuth 失败了?

您需要提供要在服务中使用的api版本

// Create a service account initialize with the service account key file and scope needed
const auth = new google.auth.GoogleAuth({
    keyFile: KEYFILEPATH,
    scopes: SCOPES
});
const driveService = google.drive({version: 'v3', auth});

Upload Image to Google drive with Node Js

中窃取的代码