如何使用Google API创建Google联系人

时间:2013-03-16 01:50:41

标签: google-contacts

我正在尝试使用Google Contacts API创建Google联系人。 根据Google doc(如下所示),我已经实现了创建功能。

Google Docs Creating contacts

要创建新联系人,请向用户的联系人供稿网址发送授权POST请求,并在正文中显示联系人数据。 URL的格式为:

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

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

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

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

如何在群组"My Contact"中直接创建?

我是否需要修改查询?

3 个答案:

答案 0 :(得分:0)

来自doc(https://developers.google.com/google-apps/contacts/v3/?csw=1#authorizing_requests_to_the_api_name_service):

  

联系小组条目

     

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

     

Contacts Data API还提供对四个预定义“系统”的访问   “为每个用户分组:

     

我的联系人朋友家庭同事系统组出现在一个组中   像用户定义的组一样提供。实际上,系统组是   大部分都像其他团体一样对待。不同之处是:

     

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

答案 1 :(得分: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

答案 2 :(得分: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);