2014-01-17 53 views
1

我已经集成了常用联系人API。在向特定列表添加联系人时它工作正常。我创建了5个不同的列表。当我将联系人添加到特定列表 我想删除此联系人表格其他列表,如果它已经存在。从常用联系人的特定列表中删除联系人API

请建议您是否有任何解决方案。

回答

1

如果您使用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); 

希望帮助!

迈克

+0

只需要注意'$ ctct = new ConstantContact(APIKEY);'使用建议的'deleteContactFromList()'效果很好! –

0

这里Bulk Activities - Remove Contacts Endpoint阅读文档后。

我采取了不同的方法。

我会布置逻辑和使用正确的CC API方法,当然,您可以动态地检索list_id并进行额外的检查(例如检查用户是否真的是列表的成员),但为此目的我试图只显示如何从列表中删除联系人,这是这里的主要思想。

我们开始吧。

    在我 composer.json
  1. 我有这样的:

{ "require": { "constantcontact/constantcontact": "1.3.2" } }

我不得不因为它安装了PHP版本29年3月5日客户端服务器基础设施的使用旧Constant Contact API

  1. 在终端导航到您的源根目录并运行composer update

  2. 当安装依赖关系时,我们准备好了。

  3. 在让我们举个例子我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()); 
    } 
    

希望它会帮助别人。干杯。

相关问题