gpt4 book ai didi

android - 将 Google Play 服务与 Google Tasks API 结合使用

转载 作者:太空狗 更新时间:2023-10-29 12:49:59 24 4
gpt4 key购买 nike

我正在尝试将我的应用程序与 Google API 集成,例如 Google Tasks,

之前Google Play Services我会使用 Google APIs Client Library对于 Java 和 AccountManager检索和访问 API 的 OAUTH token 。

这种方法的优点是我可以:

  • 顺利使用 Java 客户端 API 来访问我的应用可能需要的所有 API 方法。

缺点是:

  • 身份验证对话框非常难看且容易混淆用户(如 Google IO Play 服务 session 中所述)
  • 我需要为该应用添加所有类型的权限。

我想“Google Play 服务”改变了这一切:

  • 不需要应用许可,因为它直接从播放服务中获取,然后最终从用户那里获取
  • 它还提供了新的美丽AccountPicker使用户更清楚地进行身份验证。

但是访问 Java 客户端库 API 方法的便利性已经丧失!!!我必须自己创建所有请求。

问题是使用播放服务验证和请求 OAUTH token 的最佳方式是什么,然后继续使用客户端库 APIS 来访问实际的 API 方法?

最佳答案

您应该能够将 GoogleAuthUtil.getToken(来自 Google Play 服务)的结果直接传递给 GoogleCredential.setAccessToken(来自 Google API 客户端库)。

后者的例子可以在 TasksSample.java 中找到。 .事实上,由于 AccountManager.getAuthTokenGoogleAuthUtil.getToken API 非常相似,除了异步与同步的区别外,您应该能够修改该任务示例以轻松使用 Google Play 服务。

一些非常粗略的伪代码是:

...
// this should all be in a separate thread (e.g. AsyncTask)
final String token = GoogleAuthUtil.getToken(context, email, scope);
GoogleCredential credential = new GoogleCredential();
credential.setAccessToken(token);

Tasks service = new Tasks.Builder(transport, jsonFactory, credential)
.setApplicationName("Google-TasksAndroidSample/1.0")
.setJsonHttpRequestInitializer(new GoogleKeyInitializer(ClientCredentials.KEY))
.build();

List<String> result = new ArrayList<String>();
Tasks.TasksOperations.List listRequest = service.tasks().list("@default");
listRequest.setFields("items/title");
List<Task> tasks = listRequest.execute().getItems();
...

关于android - 将 Google Play 服务与 Google Tasks API 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13196823/

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