首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查exacttarget API中是否存在列表

检查exacttarget API中是否存在列表
EN

Stack Overflow用户
提问于 2012-04-11 15:08:00
回答 1查看 899关注 0票数 1

我计划使用PHP中的exacttarget SOAP API创建列表并将用户详细信息作为订阅者添加到列表中。code api提供了创建列表的示例代码。我基于它构建了我的自定义逻辑,如下所示

代码语言:javascript
复制
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的微不足道的理解在这里发挥了很大的作用,因此请求任何对此有更好知识或想法的老兵分享一些细节来帮助我的事业。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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部分中的相关部分:

代码语言:javascript
复制
    $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语言编写了它,然后在这里翻译了它-如果您真的需要这部分的帮助,请给我消息):

代码语言:javascript
复制
    $sfp=new ExactTarget_SimpleFilterPart;
    $sfp=>Property = "ListID";
    $sfp=>SimpleOperator = new ExactTarget_SimpleOperators->equals;
    $sfp=>Value = Array(contact_list);
    $retrieverequest=>Filter = $sfp;

希望这不会让人头疼。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10101421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档