您如何使用 Google API getRequestHeaders() 获取 OAuth2 访问令牌?
How do you use Google API getRequestHeaders() to get an OAuth2 access token?
我正在使用 googleapis
npm 库授权使用 OAuth2 访问我的 Gmail 帐户以发送电子邮件。我正在使用以下代码 (TypeScript) 来执行此操作:
const oAuth2Client = new google.auth.OAuth2(
googleConfig.clientId,
googleConfig.clientSecret
);
oAuth2Client.setCredentials({
refresh_token: googleConfig.refreshToken
});
const accessTokenRetVal = (await oAuth2Client.refreshAccessToken()).credentials.access_token;
const accessToken = accessTokenRetVal || '';
此代码有效,但我收到以下消息:
(node:8676) [google-auth-library:DEP007] DeprecationWarning: The `refreshAccessToken` method has been deprecated, and will be removed in the 3.0 release of google-auth-library. Please use the `getRequestHeaders` method instead.
我在 Google、GitHub 上搜索了 googleapis
模块,在 Whosebug 上搜索过,但我一直没能找到关于什么构成 getRequestHeaders
方法。我试过调用 getRequestHeaders
,但 return 似乎没有带有访问令牌的 credentials
对象。
是否有关于如何在这种情况下使用 getRequestHeaders
的官方文档?
这个新功能直接给你一个'Headers' object:
{ Authorization: 'Bearer xxxxxxxxx' }
所以你可以碰巧直接用它作为你的 header object:
const authHeaders = await this.auth.getRequestHeaders();
yourfetchlibrary.get('https://......', {
headers: authHeaders,
})
或提取授权部分:
const authHeaders = await this.auth.getRequestHeaders();
yourfetchlibrary.get('https://......', {
headers: {
'Authorization': authHeaders.Authorization,
'Content-Type': 'application/json',
},
})
const accessToken=oAuth2Client.getAccessToken()
这对我有用
我正在使用 googleapis
npm 库授权使用 OAuth2 访问我的 Gmail 帐户以发送电子邮件。我正在使用以下代码 (TypeScript) 来执行此操作:
const oAuth2Client = new google.auth.OAuth2(
googleConfig.clientId,
googleConfig.clientSecret
);
oAuth2Client.setCredentials({
refresh_token: googleConfig.refreshToken
});
const accessTokenRetVal = (await oAuth2Client.refreshAccessToken()).credentials.access_token;
const accessToken = accessTokenRetVal || '';
此代码有效,但我收到以下消息:
(node:8676) [google-auth-library:DEP007] DeprecationWarning: The `refreshAccessToken` method has been deprecated, and will be removed in the 3.0 release of google-auth-library. Please use the `getRequestHeaders` method instead.
我在 Google、GitHub 上搜索了 googleapis
模块,在 Whosebug 上搜索过,但我一直没能找到关于什么构成 getRequestHeaders
方法。我试过调用 getRequestHeaders
,但 return 似乎没有带有访问令牌的 credentials
对象。
是否有关于如何在这种情况下使用 getRequestHeaders
的官方文档?
这个新功能直接给你一个'Headers' object:
{ Authorization: 'Bearer xxxxxxxxx' }
所以你可以碰巧直接用它作为你的 header object:
const authHeaders = await this.auth.getRequestHeaders();
yourfetchlibrary.get('https://......', {
headers: authHeaders,
})
或提取授权部分:
const authHeaders = await this.auth.getRequestHeaders();
yourfetchlibrary.get('https://......', {
headers: {
'Authorization': authHeaders.Authorization,
'Content-Type': 'application/json',
},
})
const accessToken=oAuth2Client.getAccessToken()
这对我有用