7

主要的用例是使用IPython作爲我自己的Google賬戶的CLI。我真正在做的事情是在啓動IPython shell和實際發出針對API的有用調用之間儘量減少這些煩惱。最簡單的方式使用Python進行身份驗證Google API訪問自己的賬戶

使用Google API進行身份驗證的文檔重點在於設置其他用戶將用於訪問其數據的應用程序。 這會導致涉及瀏覽器的漫長的Oauth舞蹈,以便其他用戶在不損害其憑證的情況下進行身份驗證。 但是,我不介意與我分享我的私人憑證。我不打算分享代碼。如果我確實分享了代碼,我會使用類似dotenv的東西來將憑證與代碼分開。

Twitter爲開發者提供了第二組憑證 ,允許開發人員訪問他們自己的帳戶進行測試。 因此,通過僅提供一組憑證,可以以編程方式以編程方式訪問一個自己的帳戶:開發人員憑據,允許調用API和其他憑據授予訪問開發人員自己的數據。對於example

from twitter import * 

t = Twitter(
    auth=OAuth(token, token_key, con_secret, con_secret_key)) 

# Get your "home" timeline 
t.statuses.home_timeline() 

# Update your status 
t.statuses.update(
    status="Tweeting from Python") 

con_secret*是開發商憑證和 和token*是帳戶訪問憑據。

  • 如何使用Google API做同樣簡單的事情?
  • 我在哪裏可以獲得憑據以訪問我自己的帳戶?
  • 我如何在Google API中使用它們?

舉個例子,從我自己的Youtube播放列表中檢索內容的最簡單的過程是什麼?


我有COM認爲Python無頭瀏覽器庫可以給我我需要的東西。我已請SE軟件建議 https://softwarerecs.stackexchange.com/questions/35744/python-headless-browser-library-for-oauth2-authentication-from-ipython-console

+0

有點困惑 - 所以你想在沒有oauth的情況下使用API​​?或者不必每次都輸入用戶名/密碼? – JayIsTooCommon

+1

@JayIsTooCommon我想在本地存儲它們並下載一套憑證,並使用它們繼續使用它們,而不必在每次我想登錄時都會收到新的憑證,這正是我對Google API文檔所說的內容。據我所知,Twitter也在使用Ouath,但允許您通過類似dotenv的方式獲取自己的用戶憑證,以便繼續使用它們。我在這裏談論的是用戶憑證,而不是開發憑證,您將以這種方式重用。 –

回答

6

一個相關的問題我想下載一組憑據

谷歌提供了這種能力通過它的client_secrets.json文件。根據您要使用的帳戶類型(Web應用程序,已安裝的應用程序,服務帳戶),有多種下載方式。不同的技術可以找到here

保存憑證本地和繼續使用它們,而不需要 新憑據每次調用

這還不算一個問題,客戶端機密是有效的,直到你續訂 - AFAIK沒有自動除非您另行指定,否則到期。

下載完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') 

其他流量類的例子可以發現here

希望這有助於 - 如果您需要了解更多信息,官方文檔(其中予以警告,可以非常準確和混亂的)可以在這裏找到https://developers.google.com/api-client-library/python/guide/aaa_oauth

+1

您可以擴展「_there有不同的技術(流程類)使用JSON文件,具體取決於您使用的帳戶類型_」我主要想要從IPython控制檯交互式地使用api。 –

相關問題