在没有OAuth的情况下将Google API用于自己的帐户

Bra*_*rie 4 google-api node.js oauth-2.0 google-oauth

具体来说,我想使用Gmail API 访问我自己的邮件.有没有办法在没有OAuth和API密钥和/或客户端ID和秘密的情况下执行此操作?

使用API​​密钥,如:

require('googleapis').gmail('v1').users.messages.list({ auth: '<KEY>', userId: '<EMAIL>') });
Run Code Online (Sandbox Code Playgroud)

产生以下错误:

{ errors: 
   [ { domain: 'global',
       reason: 'required',
       message: 'Login Required',
       locationType: 'header',
       location: 'Authorization' } ],
  code: 401,
  message: 'Login Required' }
Run Code Online (Sandbox Code Playgroud)

我想这条消息意味着他们想要一个有效的OAuth"授权"标题.我会这样做,但我想如果不提供网页就不可能.

pin*_*yid 5

严格的回答是"有没有办法在没有OAuth和API密钥和/或客户端ID和秘密的情况下执行此操作?" 没有.

但是,您可以使用OAuth实现所需的功能.您只需存储刷新令牌,然后您可以随时使用它来请求Auth令牌访问您的Gmail.

为了获得刷新令牌,您可以编写一个简单的Web应用程序来执行一次身份验证,或者按照此处的步骤如何在无需用户干预的情况下授权应用程序(Web或已安装)?(规范?),它允许您使用Oauth Playground完成整个身份验证流程.

  • 问题是 Google OAuth 2.0 要求您将项目指定为“测试”或“已发布”。为“测试”项目颁发的 OAuth 2.0 令牌的有效期仅为一周,之后用户必须再次完成 OAuth 同意流程。为“已发布”项目颁发的 OAuth 2.0 令牌是永久性的,但发布需要将您的项目提交给 Google 进行审核和批准,并附上视频和安全政策的书面解释……等等。总之,Google 搞砸了它的项目。为普通用户提供的整个服务和 API 在功能上对我们不可用。 (6认同)