我计划使用PHP中的exacttarget SOAP API创建列表并将用户详细信息作为订阅者添加到列表中。code api提供了创建列表的示例代码。我基于它构建了我的自定义逻辑,如下所示
public function createList($siteId, $siteDescription){
try {
$list = new ExactTarget_List();
// $list->Description = "PHP Created List"; // List for the venue
// $list->ListName = "PHP API Created List"; // Description about the list
$list->Description = $siteDescription; // List for the venue
$list->ListName = $siteId;
$object = new SoapVar($list, SOAP_ENC_OBJECT, 'List', "http://exacttarget.com/wsdl/partnerAPI");
$request = new ExactTarget_CreateRequest();
$request->Options = NULL;
$request->Objects = array($object);
$results = $client->Create($request);
if ($results->OverallStatus == 'OK')
{
echo 'SUCCESS';
}
else
{
echo 'FAILED';
}
}
catch (SoapFault $e) {
// var_dump(e);
$this->success = 0;
}
}但是我的工作流程是这样的,如果案例列表已经存在,我应该继续下一步添加订阅者(doh!)否则,首先创建列表,然后添加订阅者。在检查列表是否存在或不使用代码API文档时,我找不到任何示例代码片段,因此我想知道这是否可能。我对SOAP和XML的微不足道的理解在这里发挥了很大的作用,因此请求任何对此有更好知识或想法的老兵分享一些细节来帮助我的事业。
发布于 2012-06-01 08:58:28
您可以相当容易地获取所有列表-例如,遵循以下ET技术文档中的代码:http://docs.code.exacttarget.com/020_Web_Service_Guide/Technical_Articles/Retrieving_a_List_from_an_Account
这篇文章相当不错(当然,相对而言),我可以保证它的准确性。下面是PHP部分中的相关部分:
$rr = new ExactTarget_RetrieveRequest();
$rr->ObjectType = "List";
$rr->Properties = array();
$rr->Properties[] = "ID";
$rr->Properties[] = "List.ListName";
$rr->Options = NULL;
$rrm = new ExactTarget_RetrieveRequestMsg();
$rrm->RetrieveRequest = $rr;
$results = $client->Retrieve($rrm);
var_dump($results);要获取特定的列表,您可以创建一个SimpleFilterPart对象并将其附加到您的RetrieveRequest (注意-这部分是错误的、未经测试的、糟糕的PHP代码-我用Python语言编写了它,然后在这里翻译了它-如果您真的需要这部分的帮助,请给我消息):
$sfp=new ExactTarget_SimpleFilterPart;
$sfp=>Property = "ListID";
$sfp=>SimpleOperator = new ExactTarget_SimpleOperators->equals;
$sfp=>Value = Array(contact_list);
$retrieverequest=>Filter = $sfp;希望这不会让人头疼。
https://stackoverflow.com/questions/10101421
复制相似问题