Google api 使用Python Google API进行身份验证以访问自己的帐户的最简单方法

Google api 使用Python Google API进行身份验证以访问自己的帐户的最简单方法,google-api,google-oauth,google-authentication,google-api-python-client,headless-browser,Google Api,Google Oauth,Google Authentication,Google Api Python Client,Headless Browser,主要使用案例是将IPython用作我自己的Google帐户的CLI。我真正想要的是尽量减少启动IPython shell和实际针对API发出有用调用之间的麻烦。 使用谷歌API进行身份验证的文档重点是设置其他用户将用于访问其数据的应用程序。 这将导致涉及浏览器的冗长Oauth舞蹈,以便允许其他用户在不损害其凭证的情况下进行身份验证。 然而,我并不介意与自己分享我的私人证书。我不打算分享代码。如果我确实共享了代码,我会使用类似于dotenv的东西将凭证与代码分开 Twitter为开发人员提供了第二

主要使用案例是将IPython用作我自己的Google帐户的CLI。我真正想要的是尽量减少启动IPython shell和实际针对API发出有用调用之间的麻烦。

使用谷歌API进行身份验证的文档重点是设置其他用户将用于访问其数据的应用程序。 这将导致涉及浏览器的冗长Oauth舞蹈,以便允许其他用户在不损害其凭证的情况下进行身份验证。 然而,我并不介意与自己分享我的私人证书。我不打算分享代码。如果我确实共享了代码,我会使用类似于
dotenv
的东西将凭证与代码分开

Twitter为开发人员提供了第二套凭证 这允许开发人员访问自己的帐户进行测试。 因此,可以通过编程方式访问自己的帐户 只需提供一组凭据:允许调用API的开发人员凭据和授予访问开发人员自己数据权限的其他凭据。用于:

其中
con_secret*
是开发人员凭据和 和
令牌*
是帐户访问凭据

  • 如何使用谷歌API做同样简单的事情
  • 我在哪里可以获得访问我自己帐户的凭据
  • 我将如何在谷歌API中使用它们
例如,从我自己的Youtube播放列表中检索内容的最简单过程是什么


我不得不想,Python无头浏览器库可以满足我的需要。我问了一个有关SE软件建议的相关问题

我想下载一套凭证

谷歌通过它的
client\u secrets.json
文件提供了这种能力。根据要使用的帐户类型(Web应用程序、已安装的应用程序、服务帐户),有不同的下载方式。可以找到不同的技术

在本地存储凭据,并在不需要 每次通话都有新的凭证

这也不是问题,客户机机密在您续订之前是有效的-除非您另行指定,否则不会自动过期

下载
client_secrets.json
后,将文件存储在非公共目录中(通常在项目目录/config中)

与下载文件类似,根据您使用的帐户类型,使用JSON文件有不同的技术(流类)。例如,以下内容将用于已安装和web应用程序

from oauth2client.client import OAuth2WebServerFlow
...
flow = OAuth2WebServerFlow(client_id='your_client_id',
                           client_secret='your_client_secret',
                           scope='scope URL here',
                           redirect_uri='http://example.com/auth_return')
可以找到其他流类示例


希望这有帮助-如果您需要进一步的信息,可以在这里找到官方文档(警告可能非常不准确和混乱)

有点混乱-那么您希望能够在没有oauth的情况下使用API吗?或者不必每次都输入用户名/密码?@JayIsTooCommon我想下载一组凭证,一旦在本地存储它们,就可以使用它们。每次登录时,我都会使用它们,而不必不断获得新的凭证。这就是我理解谷歌api文档的意思。据我所知,Twitter也在使用Ouath,但它允许您通过dotenv之类的东西获取自己的用户凭据,并继续重用它们。我在这里谈论的是用户凭据,而不是开发人员凭据,您可以通过这种方式重用这些凭据。您能否进一步介绍“根据您使用的帐户类型,有不同的技术(流类)来使用JSON文件”我主要希望从IPython控制台以交互方式使用api。
from oauth2client.client import OAuth2WebServerFlow
...
flow = OAuth2WebServerFlow(client_id='your_client_id',
                           client_secret='your_client_secret',
                           scope='scope URL here',
                           redirect_uri='http://example.com/auth_return')