2013-08-20 36 views
0

使用命令行腳本我真的越來越糊塗與谷歌的OAuth 2其中谷歌的身份驗證方法,我需要在Python

我的要求是不redirect usergoogle login page他們在自己的所有文檔描述。

我的要求是,我有我要運行它可以訪問我的日曆事件cron作業只讀目的

他們所有的文件說提redircting到瀏覽器對用戶進行認證,但沒有什麼是python腳本提及,我可以驗證我的個人賬戶這就像在自己的文檔進入我的username and password,但我沒有發現任何簡單

我讀這

https://developers.google.com/accounts/docs/OAuth2ServiceAccount#libraries

他們告訴使用JWT,但他們都沒有提到如何做,在任何代碼

{"alg":"RS256","typ":"JWT"}. 
{ 
"iss":"[email protected]account.com", 
"scope":"https://www.googleapis.com/auth/prediction", 
"aud":"https://accounts.google.com/o/oauth2/token", 
"exp":1328554385, 
"iat":1328550785 
}. 
[signature bytes] 

我不知道剛剛訪問我的個人日曆將是難在V3 API

+0

據我所知,你總是需要一個瀏覽器,因爲谷歌需要詢問用戶的同意。我使用Google的檢驗代碼構建了一個cmdline應用程序,它只需在命令行上轉存一個用戶需要複製的URL,然後粘貼到瀏覽器中,然後獲取令牌並將其粘貼回終端。它不那麼理想,但是,你不能沒有瀏覽器。 – Blubber

+0

@Blubber,但用戶只是我。我不能在我的腳本中添加一些'key/username/secret',它可以驗證我的身份 – user26

+0

不,但是您可以運行整個過程一次,檢索刷新令牌,並在每次需要時使用它獲取訪問令牌運行該應用程序。無需每次都打開瀏覽器並獲得許可,但刷新令牌可能會在某個時間點過期,而且必須再次運行整個過程。這實際上就是我們使用的,在上面提到的過程中,我們將刷新令牌存儲在數據庫中供以後使用。 – Blubber

回答

1

我的只會使用foauth.org,這使得OAuth 2.0更加簡單。您也可以使用requests-foauth library,它允許與foauth.org交互。

另一個簡單的(我的意思是乾淨,簡潔,pythonic)庫使用是python-foauth2,它提供了一個使用谷歌API的完整示例。

一些注意事項:

  • 的OAuth2服務帳戶旨在爲服務器到服務器的應用程序,這意味着它不應該被捆綁到帳戶(或日曆)。

  • 對於腳本,最好按照OAuth2 for installed apps的說明操作;打開一個瀏覽器來授權應用程序/腳本並獲得一個代碼,您可以兌換代幣。 OAuth2 for devices的說明幾乎相同,但提供了2個代碼,一個在瀏覽器中輸入,另一個在設備上存儲(或兩者都來自計算機...)。