1

我遇到了一个有趣的案例,它似乎表明 Google Contacts API 的文档不正确。

我要做的是获取已使用此 URL 授予应用程序权限的经过身份验证的用户的联系信息:

https://www.google.com/m8/feeds/contacts/default/full/contactId

呼叫的结果始终是状态 404。但是,当我尝试获取完整的通讯录时,它似乎工作正常。

https://www.google.com/m8/feeds/contacts/default/full

它记录不正确还是我做错了什么?如果我无法获取经过身份验证的用户的联系信息,我可以获得整个通讯录,这是没有意义的。

我使用的范围是:

https://www.google.com/m8/feeds

谢谢,杰克


附加信息。API 文档显示以下内容:

public static ContactEntry retrieveContact(ContactsService myService) {
  ContactEntry contact =
      myService.getEntry(new URL("https://www.google.com/m8/feeds/contacts/default/full/contactId"),
          ContactEntry.class);
  // Do something with the contact.
  return contact;
}

这似乎意味着“contactId”关键字应该用作 URL 的一部分。它对我不起作用。


澄清这个问题。目标是获取有关当前经过身份验证的用户的信息,而无需通过多次获取数据的解决方法。即使先获取所有联系人的解决方法,我也没有看到任何经过身份验证的用户的contactId 回来了。

4

1 回答 1

1

这取决于你想要得到什么。如果您致电https://www.google.com/m8/feeds/contacts/default/full,那么您正在寻找所有联系人。现在,当您取回联系人时,您可以使用https://www.google.com/m8/feeds/contacts/default/full/ {contactID} 请求单个联系人的数据,其中 {contactID} 是最后一个完整联系人列表中的部分字段。它看起来像http://www.google.com/m8/feeds/contacts/ {user email}/base/{contact id}。

因此,如果您返回完整的联系人列表,单个联系人的 ID 字段如下所示:http://www.google.com/m8/feeds/contacts/{user email}/base/{contact id} . 如果您使用最后一个 {contact ID} 并将其附加到通话末尾(https://www.google.com/m8/feeds/contacts/default/full/{contactID}),您将取回联系人仅该联系人的信息。

于 2012-07-03T00:01:42.057 回答