已实现Google People API获取联系人,如何列出并管理联系人组?
很高兴看到你已经成功用People API获取联系人了!关于联系人组的列出和管理,我来给你详细拆解下具体实现方法:
列出联系人组
要获取所有联系人组,你可以使用contactGroups->listContactGroups方法,通过groupFields参数指定要返回的组信息字段(比如名称、成员数、资源ID等):
// 初始化服务对象(和你之前的代码复用同一个$people_service即可) // $people_service = new Google_Service_PeopleService($client); // 列出联系人组 $contactGroups = $people_service->contactGroups->listContactGroups([ 'groupFields' => 'name,memberCount,resourceName', // 指定要返回的字段 'pageSize' => 10 // 每页返回的组数量 ]); // 遍历输出组信息 foreach ($contactGroups->getContactGroups() as $group) { echo "组名称: " . $group->getName() . "\n"; echo "组资源ID: " . $group->getResourceName() . "\n"; echo "成员数量: " . $group->getMemberCount() . "\n\n"; }
创建新联系人组
通过createContactGroup方法创建自定义组,需要构造Google_Service_PeopleService_ContactGroup对象并设置组名称:
// 创建新的联系人组对象 $newGroup = new Google_Service_PeopleService_ContactGroup(); $newGroup->setName("我的工作联系人组"); // 设置组名称 try { $createdGroup = $people_service->contactGroups->createContactGroup($newGroup); echo "组创建成功!资源ID: " . $createdGroup->getResourceName(); } catch (Exception $e) { echo "创建失败: " . $e->getMessage(); }
更新联系人组名称
如果需要修改组名称,使用updateContactGroup方法,传入组的资源ID和更新后的名称:
$groupResourceName = "contactGroups/你的组资源ID"; // 替换为实际的组resourceName $updatedGroup = new Google_Service_PeopleService_ContactGroup(); $updatedGroup->setName("更新后的工作联系人组"); // 设置新名称 try { $result = $people_service->contactGroups->updateContactGroup( $groupResourceName, $updatedGroup, ['updatePersonFields' => 'name'] ); echo "组名称更新成功!新名称: " . $result->getName(); } catch (Exception $e) { echo "更新失败: " . $e->getMessage(); }
向组中添加/移除联系人
使用contactGroups_members->modifyContactGroupMembers方法可以批量添加或移除组内联系人:
$groupResourceName = "contactGroups/你的组资源ID"; $modifyRequest = new Google_Service_PeopleService_ModifyContactGroupMembersRequest(); // 添加联系人(传入联系人的resourceName) $modifyRequest->setAddPersonResourceNames([ "people/联系人1的resourceName", "people/联系人2的resourceName" ]); // 如需移除联系人,取消注释下面一行 // $modifyRequest->setRemovePersonResourceNames(["people/要移除的联系人resourceName"]); try { $people_service->contactGroups_members->modifyContactGroupMembers( $groupResourceName, $modifyRequest ); echo "联系人操作成功!"; } catch (Exception $e) { echo "操作失败: " . $e->getMessage(); }
删除联系人组
通过deleteContactGroup方法删除指定组,注意系统默认组(比如"最近联系人")无法删除:
$groupResourceName = "contactGroups/你的组资源ID"; try { $people_service->contactGroups->deleteContactGroup($groupResourceName); echo "组删除成功!"; } catch (Exception $e) { echo "删除失败: " . $e->getMessage(); }
内容的提问来源于stack exchange,提问作者Ersan Aşkın
相关产品推荐
相关产品推荐

