1

リストを作成し、PHP で exacttarget SOAP API を使用して、ユーザーの詳細をサブスクライバーとして追加することを計画しています。コード 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 についての私のわずかな理解がここで大きな役割を果たしているため、これについてより良い知識やアイデアを持っているベテランが私の目的を支援するために詳細を共有してくれるかどうかを尋ねます.

4

1 に答える 1

1

すべてのリストはかなり簡単に取得できます。たとえば、次のETテクニカル ドキュメントのコードに従います。

この記事は (もちろん相対的に言えば) かなり良いものであり、その正確性は保証できます。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;

誰かの頭痛の種を救うことを願っています。

于 2012-06-01T00:58:28.157 に答える