【问题标题】:Android: how do I authenticate to my google account and how can I get my GMail Tasks?Android:如何验证我的谷歌帐户以及如何获取我的 GMail 任务?
【发布时间】:2013-05-23 06:49:51
【问题描述】:

我正在开发一个 Android 应用程序以连接到我的 Google 任务并在 ListView 中显示它们。 我尝试一步一步地遵循一些教程,例如https://developers.google.com/google-apps/tasks/oauth-and-tasks-on-android,但这些都不起作用。 我试图下载 google-api-services-tasks-v1-1.1.0-beta.jar 和该教程中提到的所有 jar,在导入所有必要的库之后它就不起作用了,当我尝试连接后得到我的任务我只是得到空值。

我发现我可以使用 Oauth2.0 进行身份验证并访问任务 API,以获取我的 clientID ecc。所以我在 Google API 的控制台上创建了一个帐户并创建了我的 OAuth clientID。

之后我尝试使用此代码进行身份验证

HttpTransport transport = new NetHttpTransport();
      JacksonFactory jsonFactory = new JacksonFactory();

      String clientId = "myID";
      String clientSecret = "mySecret";
      String redirectUrl = "https://localhost/oauth2callback";
      Iterable<String> scope ="https://www.googleapis.com/auth/tasks";
      String authorizationUrl = new GoogleAuthorizationCodeRequestUrl(clientId, redirectUrl, scope)
      .build();
      String code="Code";
      GoogleTokenResponse response = new GoogleAuthorizationCodeTokenRequest(transport, jsonFactory,
                clientId, clientSecret, code, redirectUrl).execute();
      GoogleAccessProtectedResource accessProtectedResource = new GoogleAccessProtectedResource(
                response.getAccessToken(), transport, jsonFactory, clientId, clientSecret,
                response.getRefreshToken());
      Tasks service = new Tasks(transport, jsonFactory, accessProtectedResource);
      AccessProtectedResource accessProtectedResource = new GoogleAccessProtectedResource(accessToken);
      Tasks service = new Tasks(transport, new JacksonFactory(),  accessProtectedResource);
      service.accessKey="MyKey";
      service.setApplicationName("GTasks");

我没有收到任何错误,但在创建此服务后,我尝试获取我的任务列表,但什么也没发生,我也没有得到任何结果。 当我尝试记录任务列表列表的内容时,我得到了一个空列表“{}”。 我怀疑这可能是因为我找到了旧版本的库,但即使我尝试使用最新版本,它也不起作用,我得到了相同的结果。 我真的很困惑。

我发现的每个教程都推荐了不同版本的库和不同的策略。我真的不知道我应该关注哪一个。

【问题讨论】:

  • 首先,您使用的是已弃用的 API。看看顶红banner。尝试关注this doc。用于身份验证。然后,试试这个samples

标签: java android api task


【解决方案1】:

Tasks API 真的令人困惑。

我和你一样,尝试过自己的身份验证,但没有成功。我发现修改google-api-java-client 提供的示例更容易。此示例仅列出“默认”任务列表中的任务。

您需要为 Eclipse 下载并安装 GDT 插件,然后使用它来安装您想要使用的 Google API。

一旦您的示例工作,您可以通过查看here 以了解要使用的不同功能来做更多的事情。例如,要请求“默认”任务列表中的所有任务,请使用以下行:

client.tasks().list("@default").setFields("items/title").execute().getItems();

更新任务:

client.tasks().update("@default", task.getId(), task).execute();

等等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-28
    • 1970-01-01
    • 2021-10-18
    • 2018-10-18
    • 1970-01-01
    • 1970-01-01
    • 2021-02-10
    相关资源
    最近更新 更多