【发布时间】:2016-01-19 07:48:33
【问题描述】:
我在使用 Google Contacts API v3 时遇到问题。我在下面说明了我所做的步骤。
- 通过 Google 控制台创建 client_id、file.p12。
-
实现认证机制:
public ContactsExample(){
File p12 = new File("exampleContacts.p12"); HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport(); GoogleCredential credential = new GoogleCredential.Builder() .setTransport(httpTransport) .setJsonFactory(JacksonFactory.getDefaultInstance()) .setServiceAccountId("xxxxx@developer.gserviceaccount.com") .setServiceAccountPrivateKeyFromP12File(p12) .setServiceAccountScopes(Collections.singleton("https://www.google.com/m8/feeds/")) .build(); if (!credential.refreshToken()) { throw new RuntimeException("Failed OAuth to refresh the token"); } service.setOAuth2Credentials(credential); printAllContacts(service);}
检索我的联系人:
查询 cQuery = new Query(new java.net.URL("https://www.google.com/m8/feeds/contacts/default/full")); cQuery.setMaxResults(10);
ContactFeed feed = service.getFeed(cQuery, ContactFeed.class);
for (ContactEntry contact : feed.getEntries()) {
System.out.println("name: " + contact.getTitle().getPlainText());
}
当我执行 ContactFeed feed = service.getFeed(cQuery, ContactFeed.class); 时,此方法返回一个空列表。缺少什么?
我要补充一点,我已经在客户端使用 api JavaScript v3 执行了相同的过程,并且效果很好。
谢谢!
【问题讨论】:
-
您的代码并不清楚,因此,请仔细检查一下:您是否考虑使用现成的库,例如 github.com/google/gdata-java-client 或 cloudsponge.com/contact-importers/gmail ?
-
我用的是第一个:github.com/google/gdata-java-client
标签: java google-api google-contacts-api google-api-java-client