2

我正在尝试使用Google Contacts API. 根据谷歌文档(如下),我已经实现了创建功能。

Google Docs 创建联系人

POST要创建新联系人,请向用户的联系人提要 URL发送授权请求,并在正文中包含联系人数据。URL 的格式为:

https://www.google.com/m8/feeds/contacts/{userEmail}/full

我使用此查询来创建联系人:

  www.google.com/m8/feeds/contacts/{userEmail}/full 

"Other Contact"但是,默认情况下会在组中创建新联系人。

如何直接在群里创建"My Contact"

我需要修改查询吗?

4

3 回答 3

0

从文档(https://developers.google.com/google-apps/contacts/v3/?csw=1#authorizing_requests_to_the_api_name_service):

联系人组条目

可以将联系人放入用户定义的组中。您可以使用联系人数据 API 创建、检索、更新和删除这些组,并且可以将联系人添加到组或从组中删除联系人。有关详细信息,请参阅以下部分。

联系人数据 API 还为每个用户提供对四个预定义“系统组”的访问:

我的联系人 朋友 家人 同事 系统组出现在组提要中,就像用户定义的组一样。事实上,系统组大多被视为与其他组一样。区别在于:

每个系统组条目都包含一个子元素。该子元素的 id 属性指示该组是哪个系统组:联系人、朋友、家人或同事。请注意,我的联系人 ID 值只是联系人,没有“我的”。另请注意,此系统组 ID 值与组条目元素中给出的组 ID 不同。您无法添加新系统组、更改系统组名称、向系统组添加扩展属性或删除系统组。* 代表系统组的联系人组条目不包含 rel="edit" 链接。

于 2014-01-21T09:37:20.867 回答
0
def get_group_id(label_name):
    feed = gd_client.GetGroups()
    for entry in feed.entry:
        if entry.title.text.lower() == label_name:
            return entry.id.text


contact_entry = gdata.contacts.data.ContactEntry() #contact_entry
group = get_group_id("My Contact") #group id
membership = gdata.contacts.data.GroupMembershipInfo(href=group) #group membership
contact_entry.group_membership_info.append(membership) # adding group membership to   contact_entry
于 2014-02-03T12:18:19.300 回答
0

联系人只能放置在用户定义的组中,这是不正确的。我刚刚尝试了 Google Contact V3 API,并且能够将联系人放在系统定义的组(我的联系人)下:

ContactEntry contact = new ContactEntry();
Name name = new Name();
final String NO_YOMI = null;
name.setFullName(new FullName("Elizabeth Bennet", NO_YOMI));
name.setGivenName(new GivenName("Elizabeth", NO_YOMI));
name.setFamilyName(new FamilyName("Bennet", NO_YOMI));
contact.setName(name);

GroupMembershipInfo groupInfo = new GroupMembershipInfo();
//You can fetch the following link from GroupEntry#getId()  
groupInfo.setHref("http://www.google.com/m8/feeds/groups/{EmailId}/base/{groupId}");
groupInfo.setDeleted(false);
contact.getGroupMembershipInfos().add(groupInfo);
ContactEntry createdContact = myService.insert(new URL(
    "https://www.google.com/m8/feeds/contacts/{EmailId}/full"), contact);
于 2015-07-30T14:02:39.277 回答