1

常時連絡 API を統合しました。特定のリストに連絡先を追加している間は正常に機能しています。5 つの異なるリストを作成しました。特定のリストに連絡先を追加するときに、この連絡先フォームの他のリストが既に存在する場合は削除したいと思います。

解決策があればおしえてください。

4

2 に答える 2

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);

それが役立つことを願っています!

マイク

于 2014-02-15T00:40:09.533 に答える
0

ここのドキュメントを読んだ後Bulk Activities - Remove Contacts Endpoint

私は別のアプローチを取りました。

ロジックをレイアウトし、適切な CC API メソッドを使用します。もちろん、list_id を動的に取得し、追加のチェックを行うことができます (つまり、ユーザーが本当にリストのメンバーであるかどうかをチェックするため)。リストから連絡先を削除する方法のみを示します。これがここでの主な考え方です。

はじめましょう。

  1. 私の中でcomposer.json私はこれを持っています:

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

PHP バージョン5.3.29がインストールされているクライアント サーバー インフラストラクチャのため、古い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());
    }
    

それが誰かを助けることを願っています。乾杯。

于 2017-06-12T09:01:15.380 に答える