无法获取经过身份验证的用户信息,但可以从 Google 通讯录获取地址簿



我遇到了一个有趣的案例,它似乎表明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 返回。

这取决于您要获得的内容。如果您拨打 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/{用户电子邮件}/base/{联系人 ID}。

因此,如果您返回完整的联系人列表,单个联系人将有一个 ID 字段,如下所示:http://www.google.com/m8/feeds/contacts/{用户电子邮件}/base/{联系人 ID}。如果您获取最后一个 {联系人 ID} 并将其附加到呼叫末尾 (https://www.google.com/m8/feeds/contacts/default/full/{contactID}),您将只获取该联系人的联系信息。

相关内容

  • 没有找到相关文章

最新更新