我已经整合了常量联系API。在将联系人添加到特定列表时,它工作正常。我创建了5个不同的列表。当我将联系人添加到特定列表时 我想删除此联系表单中的其他列表(如果已存在)。
如果您有任何解决方案,请建议。
答案 0 :(得分:1)
如果您使用的是PHP SDK,最简单的方法是访问联系人对象的lists属性,并删除您不再希望用户订阅的列表对象。
您也可以清除所有列表:
// 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);
希望有所帮助!
麦克
答案 1 :(得分:0)
在此阅读文档Bulk Activities - Remove Contacts Endpoint之后。
我采取了不同的方法。
我将布置逻辑和使用正确的CC API方法,当然,您可以动态检索list_id并进行额外的检查(例如,检查用户是否真的是列表的成员),但为此目的我我试图只显示如何从列表中删除联系人,这是主要的想法。
让我们开始。
composer.json
我有这个: {
"require": {
"constantcontact/constantcontact": "1.3.2"
}
}
由于安装了 PHP版本 5.3.29 的客户端服务器基础结构,我不得不使用旧的Constant Contact API。
在终端导航到您的源根并运行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());
}
希望它会帮助某人。欢呼声。