扩展 google api 密钥的范围

问题描述 投票:0回答:1

我的 Node js 应用程序有一个 api 密钥来访问 google 电子表格。现在我还想访问 Gmail API。所以我在云控制台中激活了 Gmail API,但是当我添加范围时

“https://www.googleapis.com/auth/gmail”到我的 google.auth() 请求,我收到一条错误消息“无效凭据”。使用该 api 密钥使用 Gmail API 还需要什么?

因为 api 密钥适用于整个项目,所以我假设它也会授权新激活的 API。我为 api 创建了一个新密钥,但没有帮助。我必须创建一个新的 API 密钥吗?

api key cloud
1个回答
0
投票

您在尝试使用现有 API 密钥访问 Node.js 应用程序中的 Gmail API 时似乎遇到了身份验证问题。让我们一步步解决这个问题:

API 密钥与 OAuth 2.0:首先,必须了解 API 密钥和 OAuth 2.0 身份验证之间的区别。 API 密钥主要用于在发出 API 请求时识别您的项目,而 OAuth 2.0 用于用户身份验证和授权。

Gmail API 的 OAuth 2.0:Gmail API 需要 OAuth 2.0 身份验证,因为它涉及访问用户数据(电子邮件内容)。因此,您需要获取 OAuth 2.0 凭据(客户端 ID 和客户端密钥)才能使用 Gmail API 对您的应用程序进行身份验证。

创建 OAuth 2.0 凭据:要为 Node.js 应用程序创建 OAuth 2.0 凭据以访问 Gmail API,请执行以下步骤:

a.转到 Google Cloud Console:https://console.cloud.google.com/

b.选择您的项目。

c.导航到“API 和服务”>“凭据”页面。

d。单击“创建凭据”并选择“OAuth 客户端 ID”。

e。选择“Web 应用程序”作为应用程序类型。

f。输入您的应用程序的授权重定向 URI。出于开发目的,您可以使用 http://localhost:PORT/auth/google/callback。

g。创建 OAuth 客户端 ID 后,您将收到客户端 ID 和客户端密钥。安全地保存这些凭据。

在 Node.js 中实现 OAuth 2.0:在 Node.js 应用程序中,使用 google-auth-library 等库来处理 OAuth 2.0 身份验证。以下是如何在 Node.js 中使用 OAuth 2.0 通过 Gmail API 进行身份验证的基本示例:

const { google } = require('googleapis'); const { OAuth2Client } = require('google-auth-library');

const oauth2Client = new OAuth2Client({ clientId: 'YOUR_CLIENT_ID', clientSecret: 'YOUR_CLIENT_SECRET', redirectUri: 'http://localhost:PORT/auth/google/callback', });

// 生成认证URL const authUrl = oauth2Client.generateAuthUrl({ access_type: '离线', range: 'https://www.googleapis.com/auth/gmail.readonly', // 根据需要调整范围 });

// 将用户重定向到 authUrl 并处理回调以获取访问令牌

// 使用 OAuth2Client 初始化 Gmail API const gmail = google.gmail({ 版本: 'v1', auth: oauth2Client });

// 使用Gmail API方法与Gmail交互

授权错误处理:如果您仍然遇到“无效凭据”错误,请确保您提供从 Google Cloud Console 获取的正确客户端 ID 和客户端密钥。另外,请确保授权的重定向 URI 与您的 OAuth 2.0 凭据中指定的重定向 URI 匹配。

按照这些步骤并在 Node.js 应用程序中实施 OAuth 2.0 身份验证,您应该能够成功访问 Gmail API。请记住在您的应用程序中安全地处理用户同意和令牌管理。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.