我正在解析Gmail中的联系人,并为我的产品创建同步功能.
但在我的脚本上,我很难确定哪些联系人从gmail中被“删除”.
例:
如果我的应用程序中有John Doe,还有Gmail …(并且它们与gmailId同步).稍后,如果用户删除联系人John Doe,并运行我的SYNC,如何确定联系人已被删除?
我需要知道在哪里抛出触发器来删除我的数据库中的同一个联系人.我目前有这个来获取通过发送的每个联系人的信息.
$xml = simplexml_load_string($entry->getXML());
$obj = new stdClass;
// EDIT LINK
$obj->gmailUrl = rawurlencode($entry->id);
$obj->delete = (string) $xml->groupMembershipInfo['deleted'];
// FIRST Name
$obj->firstName = (string) $xml->name->givenName;
以前在我的代码中我也用这些额外的参数查询谷歌.
$query->setParam('updated-min', $updatedMin);
$query->setParam('showdeleted', 'true');
$query->setParam('requirealldeleted', 'true');
任何帮助,将不胜感激!
最佳答案 我不确定任何特定的钩子,也不能看到明显的删除字段,但这是另一种解决问题的方法……
当您执行完全同步或单项更新时,如果不再返回特定联系人,则可以将其标记为已删除.请注意,这仅在您将showdeleted保持为false时才有效.
例…
$local = array(1, 3, 5, 7, 9);
你运行完全同步…
$remote = array(, 1, 3, 5, 9);
比较两个数组将显示已删除7.同样,如果您正在同步单个项目,如果它没有返回任何内容,您可以认为它已被删除.