常時連絡 API を統合しました。特定のリストに連絡先を追加している間は正常に機能しています。5 つの異なるリストを作成しました。特定のリストに連絡先を追加するときに、この連絡先フォームの他のリストが既に存在する場合は削除したいと思います。
解決策があればおしえてください。
常時連絡 API を統合しました。特定のリストに連絡先を追加している間は正常に機能しています。5 つの異なるリストを作成しました。特定のリストに連絡先を追加するときに、この連絡先フォームの他のリストが既に存在する場合は削除したいと思います。
解決策があればおしえてください。
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);
それが役立つことを願っています!
マイク
ここのドキュメントを読んだ後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());
}
それが誰かを助けることを願っています。乾杯。