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});
中窃取的代码
我正在尝试使用 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});
中窃取的代码