簡體   English   中英

如何使用Android API和特定帳戶連接到Google雲端硬盤?

[英]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發出請求需要兩個主要項目:

  1. refresh_token用於獲取更多access_tokens並且永不過期
  2. access_token用於發送API調用(例如:上傳文件),每60分鍾過期一次。

為了獲得這些任何一個,您必須遵循某些步驟。

  1. 通過Google Developers Console獲取OAuth 2.0客戶端ID

  2. 從Google授權服務器獲取訪問令牌

  3. 將訪問令牌發送到API

  4. 如有必要,刷新訪問令牌

有關此“一般”過程的更多具體信息,請參見此處

棘手的步驟是獲取刷新令牌,因為一旦將其存儲在安全的位置,就可以使用簡單的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM