gpt4 book ai didi

android - 访问 Google API - GoogleAccountCredential.usingOAuth2 与 GoogleAuthUtil.getToken()

转载 作者:IT王子 更新时间:2023-10-29 00:06:23 28 4
gpt4 key购买 nike

最近,我一直在 Android 上使用 Google API,尤其是 Analytics、AdSense 和 Tasks API。

我看过谷歌提供的一些示例,他们使用此语句获取 GoogleAccountCredential 对象

https://code.google.com/p/google-api-java-client/source/browse/tasks-android-sample/src/main/java/com/google/api/services/samples/tasks/android/TasksSample.java?repo=samples

凭证 =
GoogleAccountCredential.usingOAuth2(this, Collections.singleton(TasksScopes.TASKS));

但是,如果我浏览以下文档:
http://developer.android.com/google/auth/http-auth.html
http://developer.android.com/google/play-services/auth.html

他们都提到了以下用于获取 token 的方法:
token = GoogleAuthUtil.getToken(mActivity, mEmail, mScope);

我很困惑在哪种情况下使用哪个以及为什么。我一直在使用方法号。 1 成功且无需在首选项中保留 token (我猜这是由 GoogleAccountCredential 自动完成的)

  1. 谁能告诉我为什么有人会使用第一种方法而不是第二种方法?

  2. 第一种方法如何获取授权 token ?

最佳答案

Google APIs Client Library for Java顾名思义,它是一个用于访问 Google API 的库,它可用于 Java(通常)和 Android 等多种平台,而 Google Play ServicesGoogleAuthUtil仅适用于 Android。

通过查看 wiki page由于 wiki 建议 AccountManager用于处理 Google 帐户,它根本没有真正提到 GoogleAuthUtil。

但是,如果您深入研究一下代码及其问题跟踪器,您会发现 tasks sample你实际上链接了uses GoogleAuthUtil 自 version 1.12.0对 GoogleAuthUtil 的支持为 added 时的 Google API 客户端库.

wiki 可能会提到 AccountManager 而不是 GoogleAuthUtil,因为这是在 GoogleAuthUtil 可用之前进行 OAuth2 身份验证的方式,并且因为 wiki 的那部分还没有更新。

有关 AccountManager 和 GoogleAuthUtil 之间差异的更多信息,请参阅:In a nutshell what's the difference from using OAuth2 request getAuthToken and getToken

简而言之,Google APIs Client Library 是一个与 Google 服务交互的跨平台库,Android 版本使用 GoogleAuthUtil 实现。

Can anyone tell me why would anyone use the first method as opposed to second ?

使用 Google API 客户端库的原因

  • 如果您正在为 Android 以外的其他平台进行开发,则不能使用 GoogleAuthUtil,因为它是 Android 特定的库。
  • 如果您正在开发跨平台应用程序,您可以在 Android 和其他平台的共享代码中使用 Google API 客户端库。
  • 如果您经常与 Google 的许多服务进行交互,那么此库可能会让您更轻松。
  • 如果您已经在使用它并且它可以正常工作,那么继续使用它并没有任何缺点,因为它是 GoogleAuthUtil 的包装器,因此与使用 AccountManager 或其他基于库的库相比,您可以获得 GoogleAuthUtil 的所有优势在 AccountManager 上。

使用 GoogleAuthUtil 的原因

  • 使用它不需要 Google Play 服务以外的其他库或外部依赖项
  • 您的应用占用空间应该更小,因为您不必包含额外的库。
  • 如果您与 Google 的互动有限,直接使用 GoogleAuthUtil 可能会更容易,而不是通过另一个库。
  • GoogleAuthUtil 应该没有那么难使用,因此使用封装它的库来简化它可能不会那么容易使用。

I am confused which one to use in which scenario and why. I have been using Method no. 1 successfully ...

如果您使用的是 Google API 客户端库,并且它对您来说运行良好,我看不出您有任何不应该继续使用它的理由。

但是,如果我要创建一个需要与 Google 服务交互的 Android(仅限)应用程序,我可能会直接使用 GoogleAuthUtil。

... without the need of persisting the token in preferences (I guess this is done by GoogleAccountCredential automatically)

是的,这是由 GoogleAuthUtil 自动处理的,而这又由 GoogleAccountCredential 使用。

How can I access the auth token in the first method ?

你应该可以调用方法getToken()GoogleAccountCredential 对象上。

关于android - 访问 Google API - GoogleAccountCredential.usingOAuth2 与 GoogleAuthUtil.getToken(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22142641/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com