Google APIs Client Library for Java正如其名稱暗示用於訪問Google API的庫一樣,它可用於多種平臺,如Java(一般)和Android,而Google Play Services和GoogleAuthUtil僅適用於Android。
通過查看項目的wiki page就很難理解谷歌API客戶端庫如何與GoogleAuthUtil因爲維基表明AccountManager用於處理谷歌帳戶,它並沒有真正提GoogleAuthUtil可言。
但是如果你深入到代碼和問題跟蹤了一下,你可以看到你tasks sample自從谷歌API客戶端庫的鏈接version 1.12.0實際上uses GoogleAuthUtil當GoogleAuthUtil支持是added。
維基可能提及AccountManager而不是GoogleAuthUtil,因爲這是在GoogleAuthUtil可用之前進行OAuth2身份驗證的方式,也是因爲維基的那部分尚未更新。
有關的AccountManager和GoogleAuthUtil之間請參閱差異的詳細信息:In a nutshell what's the difference from using OAuth2 request getAuthToken and getToken
總之谷歌API客戶端庫是與谷歌的服務交互和Android版本通過使用GoogleAuthUtil實現的跨平臺庫。
誰能告訴我,爲什麼會有人使用第一種方法,而不是第二個?
理由使用谷歌API客戶端庫
- 如果是比Android不能使用GoogleAuthUtil,因爲它是一個Android特定庫的一些其他平臺的開發者。
- 如果您正在開發跨平臺應用程序,則可以在您的共享代碼中使用Google API客戶端庫,以用於Android和其他平臺。
- 如果您與Google的許多服務有很多交互,此庫可能會讓您的工作更輕鬆。
- 如果您已經在使用它並且它按照想要的方式工作,那麼繼續使用它並沒有任何缺點,因爲它是GoogleAuthUtil的包裝器,所以與使用AccountManager或某個其他庫相比,您可以獲得GoogleAuthUtil的所有優點在AccountManager上。
理由使用GoogleAuthUtil
- 使用這種需要比谷歌沒有其他庫或外部依賴性播放服務
- 您的應用程序的足跡應該是較小的,因爲你沒有包括附加庫。
- 如果您與Google的互動有限,直接使用GoogleAuthUtil可能會更容易,而不是直接使用另一個庫。
- GoogleAuthUtil應該不會那麼難用,所以使用一個包裝它來簡化它的庫可能不會那麼容易使用。
我很困惑在哪個場景以及爲什麼使用哪一個。我一直在使用方法編號。 1成功...
如果您使用的是Google API客戶端庫,並且它可以正常工作,我看不出有什麼理由不應該繼續使用它。
但是,如果我要創建需要與Google服務交互的Android(僅)應用程序,我可能會直接使用GoogleAuthUtil。
...無需持續偏好令牌(我猜這是由GoogleAccountCredential自動完成)
是的,我這個被GoogleAuthUtil這又被GoogleAccountCredential使用的是自動處理。
如何在第一種方法中訪問身份驗證令牌?
您應該能夠調用GoogleAccountCredential
對象上的方法getToken()。
感謝您的詳細解答!這個答案應該被賞金接受! –
感謝您的回答。我接受了。 –
其中的一個還會返回刷新令牌嗎?例如谷歌驅動器? –