0

我無法找到使用Google SDK + Python + MAC OSx + GMAIL API授權服務器到服務器身份驗證的解決方案。Google App Engine服務器到服務器OAuth Python

我想測試我的本地環境的GMail API的整合,在GAE發佈我的應用程序之前,但是到現在爲止我一直在使用,我在GMail中API或OAuth的API文檔,發現樣品沒有結果。在所有測試中,當我的應用程序使用GCP服務帳戶時,我收到了同樣的錯誤「403-權限不足」,但如果我將應用程序轉換爲使用用戶帳戶,則一切正常。

+0

你是什麼意思呢「時,我的應用程序是使用GCP服務帳戶,但如果我轉換爲使用用戶帳戶一切都很好的應用。」 – Jordon

回答

0

服務帳戶不是你自己的用戶。即使您可以通過服務帳號訪問Gmail,但我懷疑您只會訪問服務帳號GMail帳號(我認爲它不具備),而不是您自己的帳號。

據我所知訪問Gmail API的唯一方法是使用了OAuth2。

服務帳戶可用於訪問某些Google API,例如Google驅動器。該服務帳戶將自己的Google雲端硬盤帳戶文件上傳到其雲端硬盤帳戶。我可以通過將其作爲用戶添加到Google雲端硬盤中的文件夾來授予其上傳到我的谷歌雲端硬盤帳戶的權限。

你不能給如此反覆讀取您的Gmail帳戶訪問Gmail的API將使用的oauth2的必由之路其他用戶的權限。

+0

對不起,我忘了這個重要的信息,但應用程序使用OAuth 2.0 –

0

,我建議你去爲THRE腿的OAuth 2.0。有關更多信息,請訪問我的回答here

相關的術語「三向OAuth」是指 您的應用程序調用代表最終用戶的谷歌API的場景,在 哪個用戶同意的有時需要。

我認爲你必須使用三向OAuth 2.0,雙向OAuth 2.0將不會工作你的情況

請從developers.google.com

推薦閱讀:您的應用程序可以完成這些任務可通過 使用您的語言的Google API客戶端庫或直接通過 與使用HTTP的OAuth 2.0系統進行交互。但是,服務器到服務器身份驗證交互的機制需要 應用程序來創建和加密簽名JSON Web令牌 (JWT),並且很容易造成嚴重錯誤,從而嚴重影響應用程序的安全性。

由於這個原因,我們強烈建議您使用庫,例如​​Google APIs客戶端庫,它將應用程序代碼中的加密技術從 中抽象出來。

+0

對不起,我忘了這個重要的信息,但應用程序使用OAuth 2.0 –

+0

是否使用雙向OAuth 2.0或三向OAuth 2.0嗎? – Jordon

+0

我嘗試這兩種方法: 「從oauth2client.appengine進口AppAssertionCredentials 憑證= AppAssertionCredentials( 'https://mail.google.com/') 」 和該另一之一: 「 從oauth2client.client進口SignedJwtAssertionCredentials client_email = '[email protected]' 張開( 「MyProject.pem」)爲f: PRIVATE_KEY = f.read() 憑證= SignedJwtAssertionCredentials(client_email,PRIVATE_KEY, 'https://mail.google.com/') 「 –

相關問題