Php 从常量联系人API中删除特定列表中的联系人
我已经集成了常数接触API。将联系人添加到特定列表时,它工作正常。我已经创建了5个不同的列表。当我将联系人添加到特定列表时 如果此联系人表单已存在,我想将其从其他列表中删除Php 从常量联系人API中删除特定列表中的联系人,php,constantcontact,Php,Constantcontact,我已经集成了常数接触API。将联系人添加到特定列表时,它工作正常。我已经创建了5个不同的列表。当我将联系人添加到特定列表时 如果此联系人表单已存在,我想将其从其他列表中删除 请建议您是否有任何解决方案。如果您正在使用PHP SDK,最简单的方法可能是访问联系人对象的列表属性,并删除您不再希望用户订阅的列表对象 您还可以清除所有列表,例如: // Clear all lists $contact->lists = array(); // Add the particular list yo
请建议您是否有任何解决方案。如果您正在使用PHP SDK,最简单的方法可能是访问联系人对象的列表属性,并删除您不再希望用户订阅的列表对象 您还可以清除所有列表,例如:
// Clear all lists
$contact->lists = array();
// Add the particular list you want
$contact->addList('listId');
// Update Contact
$ctct->updateContact(ACCESS_TOKEN, $contact, false);
否则,您也可以使用deleteContactFromList($accessToken,$contact,$list)
方法,但这需要更多的工作,因为它需要联系人实体和列表实体(而不仅仅是ID)。因此,基本上,一旦您获得了联系人实体,它将如下所示:
$contact = $ctct->getContactByEmail(ACCESS_TOKEN, $email_address)->results[0];
$listToDelete = new ContactList($listId);
$ctct->deleteContactFromList(ACCESS_TOKEN, $contact, $listToDelete);
希望有帮助
Mike阅读了此处的文档后 我采取了不同的方法 我将布局逻辑和使用正确的CC API方法,当然,您可以动态检索列表id并进行其他检查(例如,检查用户是否真的是列表的成员),但出于此目的,我仅尝试展示如何从列表中删除联系人,这是本文的主要思想 让我们开始吧
composer.json
中,我有:{
“要求”:{
“constantcontact/constantcontact”:“1.3.2”
}
}
由于安装了PHP 5.3.29版的客户端服务器基础设施,我不得不使用旧版
composer update
index.php
为例,我会说:
require_once('/vendor/autoload.php');
use Ctct\ConstantContact;
use Ctct\Services;
use Ctct\Components\Contacts\Contact;
use Ctct\Exceptions\CtctException;
define("APIKEY", "YOUR_API_KEY_HERE");//Write your API key
define("ACCESS_TOKEN", "YOUR_ACCESS_TOKEN_HERE");//Write your Access Token here
$cc = new ConstantContact(APIKEY);
$ca = new Services\ActivityService(APIKEY);
$error = 0;
try {
$response = $cc->getContactByEmail(ACCESS_TOKEN, $email);
if (empty($response->results)) {
//Create new contact if needed
} else {
$action = "Remove contact from subscribe list";
$contact = $response->results[0];
try {
$ca->addRemoveContactsFromListsActivity(
ACCESS_TOKEN,
array($contact->email_addresses[0]->email_address),
array('1894839946')//List Id from which you want the contact to be removed from
);
} catch (Exception $e) {
var_dump($e->getMessage());
}
/*
* The third parameter of updateContact defaults to false, but if this were set to true it would tell
* Constant Contact that this action is being performed by the contact themselves, and gives the ability to
* opt contacts back in and trigger Welcome/Change-of-interest emails.
*
* See: http://developer.constantcontact.com/docs/contacts-api/contacts-index.html#opt_in
*/
$returnContact = $cc->updateContact(ACCESS_TOKEN, $contact, true);
}
} catch (Exception $e) {
var_dump($e->getMessage());
}
希望它能帮助别人。干杯。只想注意,
$ctct=new ConstantContact(APIKEY)
使用建议的deleteContactFromList()
效果很好!