我可以使用Google帳戶用戶名和密碼進行身份驗證,而不是使用OAuth嗎?如果沒有,是否計劃在未來版本的Google Drive API中支持這種身份驗證?我可以使用Google Drive API中的Google用戶名和密碼進行身份驗證嗎?
我目前使用Google Documents List API,它允許使用用戶名和密碼進行身份驗證。所以我想知道我是否可以使用Google Drive API做同樣的事情。
我可以使用Google帳戶用戶名和密碼進行身份驗證,而不是使用OAuth嗎?如果沒有,是否計劃在未來版本的Google Drive API中支持這種身份驗證?我可以使用Google Drive API中的Google用戶名和密碼進行身份驗證嗎?
我目前使用Google Documents List API,它允許使用用戶名和密碼進行身份驗證。所以我想知道我是否可以使用Google Drive API做同樣的事情。
您有任何理由不能使用OAuth 2.0作爲您的授權機制嗎?
客戶端登錄當前爲deprecated,您和您的用戶使用OAuth 2.0會更好。
Drive SDK documentation以及各種客戶端庫項目頁面中有多個代碼示例可幫助您入門。
如果您正在運行服務器應用程序,請考慮在OAuth2和Drive API中使用服務帳戶。這將允許您在服務器上運行應用程序,而無需用戶在控制檯上或通過用戶界面提供OAuth2憑據。如果您希望您的應用使用特定帳戶處理文檔,您也可以進行模擬。
GoogleCredentials credentials = new GoogleCredential.Builder()
.setTransport(HTTP_TRANSPORT)
.setJsonFactory(JSON_FACTORY)
.setServiceAccountId("[[SERVICE_ACCOUNT_EMAIL]]")
.setServiceAccountScopes(DriveScopes.DRIVE, DriveScopes.DRIVE_FILE,
"https://www.googleapis.com/auth/userinfo.email",
"https://www.googleapis.com/auth/userinfo.profile")
.setServiceAccountPrivateKeyFromP12File(Auth.keyFile)
.setServiceAccountUser("[[[email protected]]]")
.build();
credentials.refreshToken();
我在某處(可能是這裏)找到了這篇博文:http://blog.databigbang.com/automated-browserless-oauth-authentication-for-twitter/。
我知道這是關於推特,但它使用相同的方法,所以我認爲它只需要一點點的名稱調整。簡而言之:如果腳本僅由服務器運行,請安裝Jython + HTMLUnit,模擬用戶轉到生成的授權鏈接並單擊「允許訪問」按鈕並獲取令牌。
是的,我無法使用OAuth,因爲我的應用程序是命令行的,並且它應該在沒有圖形界面的Linux服務器上運行。 – Evgenii
您不需要設備本身的圖形界面。您可以使用[Native Application flow](https://developers.google.com/accounts/docs/OAuth2InstalledApp)在另一臺計算機上設置授權(例如通過SSH):應用程序將生成一個您必須訪問的URL同時進行身份驗證並將代碼複製迴應用程序。 – Alain
謝謝你的細節,阿蘭。使用另一臺帶有GUI的計算機來驗證服務器應用程序不是我的選擇,因爲它使工作流程變得複雜。看起來我現在別無選擇,只能繼續使用「文檔列表API」。 – Evgenii