【问题标题】:google people api: assign/create contact groupgoogle people api:分配/创建联系人组
【发布时间】:2018-09-18 11:54:04
【问题描述】:

我无法弄清楚如何使用 php 中的 google people api 创建一个新的联系人组并将其分配给联系人。一个错误

“person.memberships 是一个只读字段。”

发生在 $person->setMemberships():

    $contactGroup=new Google_Service_PeopleService_ContactGroup();
    //$contactGroup->setGroupType('USER_CONTACT_GROUP');
    $contactGroup->setName('Some group');
    $contactGroup->create();
    $cgm=new Google_Service_PeopleService_ContactGroupMembership();
    $cgm->setContactGroupId('groupID');
    $membership=new Google_Service_PeopleService_Membership();

    $membership->setContactGroupMembership($cgm);
      $person=new Google_Service_PeopleService_Person();

      $groupMemberships=array(($membership));
      $person->setMemberships(array($groupMemberships));//error happens here

任何人都可以提供创建联系人组并将其分配给联系人的适当示例吗?

【问题讨论】:

  • 错误信息很容易解释。您不能将 person.membership 字段设置为只读。

标签: php google-api google-api-php-client google-people-api


【解决方案1】:

以下代码假设您已经实例化了一个 Google_Client 对象,并且已经创建了一个人并且知道他们的 ID。

资源 ID 示例,

$person_id = 'people/1234567890abcde';

创建一个联系人组,

$peopleService = new Google_Service_PeopleService($client);

$newContactGroup = new Google_Service_PeopleService_ContactGroup;
$newContactGroup->setName('New contact group');

$createContactGroupRequest = new Google_Service_PeopleService_CreateContactGroupRequest;
$createContactGroupRequest->setContactGroup($newContactGroup);

$contactGroup = $peopleService->contactGroups->create($createContactGroupRequest);

$contact_group_id = $contactGroup->getResourceName();

将一个人添加到联系人组,

$peopleService = new Google_Service_PeopleService($googleClient);

$modifyContactGroupMembersRequest = new Google_Service_PeopleService_ModifyContactGroupMembersRequest;
$modifyContactGroupMembersRequest->setResourceNamesToAdd($person_id);

$peopleService->contactGroups_members->modify($contact_group_id, $modifyContactGroupMembersRequest);

【讨论】:

  • 非常感谢,我知道如何分配组了。但据我了解,不可能为联系人分配外部 ID 并使用该 ID 搜索联系人。有点奇怪,因为安卓联系人有这种可能性。我打算将联系人与我们的 CRM 同步,看起来这并不容易,并通过 CRM 中使用的联系人 ID 识别谷歌联系人:(。
【解决方案2】:

您不能在创建调用中设置联系人组的成员。您需要在一次调用中创建联系人组,然后在第二次调用中使用members.modify api 调用添加它。

【讨论】:

  • 感谢您的提示,但我无法分配联系人组,因为我没有从 $result = $peopleService->people->createContact($person);任何想法为什么?文档状态我应该使用资源名称获取 Person 对象
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-07
  • 1970-01-01
  • 1970-01-01
  • 2022-01-07
  • 2021-04-30
相关资源
最近更新 更多