我正在尝试了解使用Google OAuth接收GMail电子邮件的基本逻辑。我看到此文档Authorizing Your App with Gmail
现在,我按照Setting Up POP3 Importing with OAuth via Google中的说明使用Google OAuth设置POP3。
我登录一个Google帐户(Account1),然后在Google Cloud中创建Google应用程序和OAuth客户端ID。
然后我开始用Web应用程序(WHMCS)连接到GMail帐户(Account2)。连接时,它要求我选择一个创建应用程序的帐户,所以我选择了Account1。但得到以下错误:
错误403:access_denied开发者尚未授予您访问此应用的权限。
因此我有点困惑。由于Account1用于创建应用程序和OAuth客户端ID,因此当我选择Account1时,它应该可以访问应用程序,但应用程序将无法访问Account2中的数据。或者错误消息中的应用程序是指Gmail,而不是我在Google Cloud中创建的应用程序?
我是否应该使用Account2来创建用于在Account2中接收电子邮件的应用程序?如果是,那么对于每个Gmail帐户,我是否应该相应地创建一个单独的应用程序?
更新
现在我试着做如下说明:
1.使用Account3(Google Workspace的管理员)创建云项目、同意窗口、客户端ID等。
1.然后,当从我们的域www.example.com上的WHMCS连接时datanumen.com,它要求我选择帐户,我选择了Account3,然后看到一个新窗口,如下所示:
然后我选择“允许”按钮,但随后看到以下错误:
连接不成功。请关闭此窗口,然后重试。
更新
我试了几次,发现第一次就成功了,我忘记在Gmail账户里启用POP3了,启用后一切正常。
1条答案
按热度按时间kg7wmglp1#
我有点搞不懂你想做什么。
您在Google cloud console上创建了一个项目,并创建了客户端ID和客户端密码以授权您的项目。
所有这一切都是创建一个项目,该项目将被允许使用Oauth2来请求授权用户访问其数据。
如果我明白WHMCS想做什么,它会让你使用你的客户端id和客户端密码来请求用户访问他们的数据。
因此,当它要求你授权一个用户时,这个用户就是你想要访问数据的用户。这个用户必须作为测试用户添加到你创建的项目的谷歌云控制台上。
您在google cloud console上创建的项目仍处于测试阶段。您希望允许测试您的应用程序的每个用户都必须添加为测试用户。否则只有项目的所有者才能测试应用程序。
要解决这个问题,我是这么简单:
1.转到https://console.developers.google.com/
1.打开有问题的项目。
1.单击左侧的“OAuth同意屏幕”。
1.在“测试用户”下,有一个名为“+添加用户”的按钮
1.键入您将用于测试的帐户的电子邮件,按Enter键,然后单击保存。
1.现在应该能用了
看起来他们最近更新了这个,因为去年我没有这样做。
工作区
你可能会遇到的问题是,如果你在一个工作区帐户上创建了这个项目,那么我怀疑只有工作区域用户才能授权它。它不能被标准谷歌域上的人授权。所以试着用一个工作区域用户。同样的可能会走另一条路,我从来没有试过tbh。我倾向于保持工作区在它的域内。