2

I am trying to create a triggered send using the API with PHP.

The soap call is registering, however, i don't believe the function is registering correctly. I have a Triggered Send Definition already set up in the account and a DE associated with it.

verification if statement is :

if (preg_match("/^([a-z]+[\w-]*\.?)+@([\w-]+\.)+[a-z]{2,4}$/i", $_POST['email'])) {

    date_default_timezone_set('UTC');
    $dateTime = new DateTime ();
    $setDateVal = date('n/j/Y',strtotime('now'));

    $email = $_POST['email'];
    $zip =  $_POST['zip'];

    include('exacttarget_soap_client.php');
    $wsdl = 'https://webservice.s4.exacttarget.com/etframework.wsdl';
        try {
            /* Create the Soap Client */
            $client = new ExactTargetSoapClient($wsdl, array('trace' => 1));

            /* Set username and password
             * 
             *  here */
            $client->username = '************';
            $client->password = '************';

            $subscriber = new ExactTarget_Subscriber();
            $subscriber->EmailAddress = $email;
            $subscriber->SubscriberKey = $email;

            // This section is needed if you are adding a subscriber to a Lock and Publish account using an enterprise API user

            $cl = new ExactTarget_APIObject();
            $cl->ID = **********;
            $cl->CustomerKey = '**********';
            $subscriber->Client = $cl;

            //% ExactTarget_Subscriber               
            $attribute1 = new ExactTarget_Attribute();
            $attribute1->Name = "POSTALCODE";
            $attribute1->Value = $zip;

            //% ExactTarget_Subscriber  
            $attribute3 = new ExactTarget_Attribute();
            $attribute3->Name = "DATE";
            $attribute3->Value = $setDateVal;

            //% ExactTarget_Subscriber 
            $attribute4 = new ExactTarget_Attribute();
            $attribute4->Name = "OPTIN";
            $attribute4->Value = "Y";

            $subscriber->Attributes = array($attribute1, $attribute2, $attribute3, $attribute4);

            // This is the section needed to define it as an "Upsert"
            $so = new ExactTarget_SaveOption();
            $so->PropertyName = "*";
            $so->SaveAction = ExactTarget_SaveAction::UpdateAdd;
            $soe = new SoapVar($so, SOAP_ENC_OBJECT, 'SaveOption', "http://exacttarget.com/wsdl/partnerAPI");
            $opts = new ExactTarget_UpdateOptions();
            $opts->SaveOptions = array($soe);

            $object = new SoapVar($subscriber, SOAP_ENC_OBJECT, 'Subscriber', "http://exacttarget.com/wsdl/partnerAPI");

            $request = new ExactTarget_CreateRequest();
            $request->Options = $opts;
            $request->Objects = array($object);


            $results = $client->Create($request);

            print_r($results);

        } catch (SoapFault $e) {

            print_r($e->faultstring);

        }
}

Am I using the correct code? Is there a TriggeredSend Shell available for PHP, and if so - where do i define subscriber/DE attributes?

  • If you ever managed to solve this would you mind sharing your final code? Thanks in advance! – AnnieMac Aug 17 '16 at 7:26
4

Take a look at this example of TriggeredSend for the PHP Fuel SDK? This explains how you can set the subscribers while sending a triggered send.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.