![](/img/trans.png)
[英]how to sign out from Google Account and show account chooser again using Google Drive Android Api
[英]How to connect to Google Drive using the Android API and a specific account?
我想使用Google雲端硬盤進行雲同步。
是否可以使用Android版 Google Drive API連接到將用作雲存儲服務器的特定帳戶?
嘗試連接到指定的Google帳戶時,如何設置用戶帳戶和密碼?
到目前為止,我正在使用:
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addApi(Drive.API)
.addScope(Drive.SCOPE_FILE)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
但這為用戶提供了一個登錄對話框,以選擇自己的本地帳戶,這不是我想要的。 謝謝。
這是一個摘錄這個答案我給了一個類似的問題:
向Google API發出請求需要兩個主要項目:
refresh_token
用於獲取更多access_tokens
並且永不過期 access_token
用於發送API調用(例如:上傳文件),每60分鍾過期一次。 為了獲得這些任何一個,您必須遵循某些步驟。
通過Google Developers Console獲取OAuth 2.0客戶端ID
從Google授權服務器獲取訪問令牌
將訪問令牌發送到API
如有必要,刷新訪問令牌
有關此“一般”過程的更多具體信息,請參見此處 。
棘手的步驟是獲取刷新令牌,因為一旦將其存儲在安全的位置,就可以使用簡單的httpRequests進行任何操作。
要獲得刷新令牌,用戶必須同意授予您的項目訪問某些功能的權限。 這在Google語言中稱為scopes
。 您可以通過多種不同方式(根據Google)來執行此操作:
發出此請求的方法有多種,並且根據您所構建的應用程序的類型而有所不同。 例如,JavaScript應用程序可能會使用瀏覽器重定向到Google來請求訪問令牌,而安裝在沒有瀏覽器的設備上的應用程序會使用網絡服務請求。
他們沒有告訴您的一件事是,在您的情況下,使用哪種介質獲取refresh_token
都沒有關系,因為您只使用一個帳戶。 Google雲端硬盤API並非真正像服務器一樣使用。 它旨在供希望在其每個用戶帳戶上存儲信息的開發人員使用。 就像您擁有圖片應用一樣,您可以使用一項功能,將經過編輯的圖片存儲在某人的個人Google雲端硬盤帳戶中。
您(以及最近詢問過的許多其他人)想要做的基本上是將雲端硬盤帳戶用作服務器。 這意味着您通過其獲取refresh_token
的介質不必與您使用驅動器帳戶的介質有關。
例如,在我的特定情況下,我想要一種將用戶圖片免費存儲在服務器上的Android應用程序的方法。 我正在使用名為Parse的免費服務充當我的數據庫服務器,但是它們在您的免費層中為您提供的文件存儲非常有限。
因此,我決定嘗試找出如何使用Google雲端硬盤帳戶來擴展存儲空間。 我創建了一個通用的Gmail帳戶(例如“ hostingaccount@gmail.com”)作為文件的主機(免費提供15g)。
為了獲取我的refresh_token
,我設置了一個php服務器來驗證該帳戶。 當有人轉到我設置的頁面時,系統會提示他們登錄,然后授予對我的項目的訪問權限,以使用其Google雲端硬盤帳戶(特定范圍: https://www.googleapis.com/auth/drive
: https://www.googleapis.com/auth/drive
)。 然后,我設置腳本以在屏幕上打印該帳戶的refresh_token。 現在,我可以輕松地將httpRequests發送到:
https://www.googleapis.com/oauth2/v3/token/
獲取訪問令牌並執行以下操作:
https://www.googleapis.com/upload/drive/v2/files
上傳文件。
我將其鏈接到此編輯的頂部,但此答案顯示了如何使用我的php方法獲取刷新令牌。 我從來沒有花時間去嘗試如何以其他方式獲取刷新令牌,但是如果您閱讀了我的完整答案,我想我提到我相信使用Android Google Drive API也可以做到這一點。
我已經嘗試過幫助很多人解決這個問題,也許我應該只是開一個博客並就此做一個教程;)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.