我正在开发一款Android应用,以连接到我的Google Tasks并在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");
我没有得到任何错误,但在创建此服务后,我试图获取我的任务列表,但没有任何反应,我没有得到任何结果。 当我尝试记录任务列表列表的内容时,我只得到一个空列表“{}”。 我怀疑这可能是因为我找到了旧版本的库,但即使我试图使用最新版本它也不起作用,我得到了相同的结果。 我真的很困惑。
我发现的每个教程都推荐使用不同版本的库和不同的策略。我真的不知道应该跟随谁。
答案 0 :(得分:0)
任务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();
等等。