【问题标题】:Authorize and access Google Tasks API from Android app?从 Android 应用授权和访问 Google Tasks API?
【发布时间】:2012-12-25 07:17:15
【问题描述】:

我正在尝试为我的应用添加对 Google Tasks 的支持——具体来说,该应用应该能够添加新任务。

这周的大部分时间我都在尝试完成这项工作,但没有成功。具体来说,我没有设法让我的应用程序完全授权访问 API。我找到了 3-5 个不同的教程或文档集来说明如何操作:

上面的许多内容似乎相互矛盾,或者至少使用了不同的 API,它们的重叠对我来说不是很明显。我最接近的是通过上面第一个链接(http://bit.ly/UHTKNW)中引用的示例代码。正如预期的那样,我可以让它编译和运行,甚至请求用户访问任务的权限。但它随后失败,出现 403 Forbidden “access not configured”异常。我假设我需要提供 API 密钥和/或客户端密码,但示例中使用的 API 似乎没有提供明显的方法来做到这一点。我也不清楚是否需要设置签名证书指纹才能完成这项工作,如果需要,该怎么做。

所以我陷入困境、困惑和极度沮丧。任何帮助将不胜感激。

谢谢。 --戴夫

【问题讨论】:

    标签: android oauth google-tasks-api


    【解决方案1】:

    那些 API 发生了很大变化,我能理解您的沮丧。

    查看most recent sample application。它包含有关设置 API 访问权限和入门的说明。

    基本上,您只需在 API 控制台中注册您的应用程序,您的代码就不必处理任何 API 密钥:

    GoogleAccountCredential credential = GoogleAccountCredential.usingOAuth2(context, TasksScopes.TASKS);
    credential.setSelectedAccountName(accountName);
    
    mService = new com.google.api.services.tasks.Tasks.Builder(new NetHttpTransport(), new GsonFactory(), credential)
            .setApplicationName("YourApplicationName").build();
    

    任务 API 可能会抛出不同的异常,例如当用户必须确认您的应用程序的访问权限时。在示例中,CommonAsyncTask 处理它们。

    【讨论】:

    • 这是我一直在使用但还没有开始工作的示例代码。我保留了 Google 所拥有的应用程序名称,并且可以将其更改为 API 控制台中显示的名称……这真的足以对我进行身份验证吗?在 API 控制台本身中,有许多设置选项需要不同类型的信息;那里的正确设置是什么?
    • @DaveFeldman 您是否为 OAuth 访问创建了客户端 ID?我相信它是 API Access 下的蓝色大按钮。不要使用简单的 API 访问,那是错误的。我不认为应用程序名称用于身份验证,您必须输入您的包名称和客户端 ID 的签名证书指纹。请检查我再次发布的链接中的说明,“注册您的应用程序”下的步骤非常详细。
    【解决方案2】:

    查看我的其他答案Access youtube account with accountmanager

    它适用于 YouTube,但区别只是将正确的“链接”传递给代码。希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-06
      • 1970-01-01
      • 2012-04-16
      • 1970-01-01
      • 2021-10-30
      • 1970-01-01
      • 2015-12-26
      • 1970-01-01
      相关资源
      最近更新 更多