コード例 #1
0
 /**
  * Update a specific email campaign
  * @param string $accessToken - Constant Contact OAuth2 access token
  * @param Campaign $campaign - Campaign to be updated
  * @return Campaign
  */
 public function updateCampaign($accessToken, Campaign $campaign)
 {
     $baseUrl = Config::get('endpoints.base_url') . sprintf(Config::get('endpoints.campaign'), $campaign->id);
     $url = $this->buildUrl($baseUrl);
     $response = parent::getRestClient()->put($url, parent::getHeaders($accessToken), $campaign->toJson());
     return Campaign::create(json_decode($response->body, true));
 }
コード例 #2
0
/**
 * Create an email campaign with the parameters provided
 * @param array $params associative array of parameters to create a campaign from
 * @return Campaign updated by server
 */
function createCampaign(array $params = array())
{
    $cc = new ConstantContact(APIKEY);
    $campaign = new Campaign();
    $campaign->name = $params['name'];
    $campaign->subject = $params['subject'];
    $campaign->from_name = $params['from_name'];
    $campaign->from_email = $params['from_addr'];
    $campaign->greeting_string = $params['greeting_string'];
    $campaign->reply_to_email = $params['reply_to_addr'];
    $campaign->text_content = $params['text_content'];
    $campaign->email_content = $params['email_content'];
    $campaign->email_content_format = $params['format'];
    // add the selected list or lists to the campaign
    if (isset($params['lists'])) {
        if (count($params['lists']) > 1) {
            foreach ($params['lists'] as $list) {
                $campaign->addList($list);
            }
        } else {
            $campaign->addList($params['lists'][0]);
        }
    }
    return $cc->emailMarketingService->addCampaign(ACCESS_TOKEN, $campaign);
}
コード例 #3
0
 /**
  * Update a specific email campaign
  * @param string $accessToken - Constant Contact OAuth2 access token
  * @param Campaign $campaign - Campaign to be updated
  * @return Campaign
  * @throws CtctException
  */
 public function updateCampaign($accessToken, Campaign $campaign)
 {
     $baseUrl = Config::get('endpoints.base_url') . sprintf(Config::get('endpoints.campaign'), $campaign->id);
     $request = parent::createBaseRequest($accessToken, 'PUT', $baseUrl);
     $stream = Stream::factory(json_encode($campaign));
     $request->setBody($stream);
     try {
         $response = parent::getClient()->send($request);
     } catch (ClientException $e) {
         throw parent::convertException($e);
     }
     return Campaign::create($response->json());
 }
コード例 #4
0
 public function testUpdateCampaign()
 {
     $response = self::$client->put('/');
     $campaign = Campaign::create($response->json());
     $this->assertInstanceOf('Ctct\\Components\\EmailMarketing\\Campaign', $campaign);
     $this->assertEquals("1100394165290", $campaign->id);
     $this->assertEquals("CampaignName-05965ddb-12d2-43e5-b8f3-0c22ca487c3a", $campaign->name);
     $this->assertEquals("CampaignSubject", $campaign->subject);
     $this->assertEquals("SENT", $campaign->status);
     $this->assertEquals("From WSPI", $campaign->from_name);
     $this->assertEquals("*****@*****.**", $campaign->from_email);
     $this->assertEquals("*****@*****.**", $campaign->reply_to_email);
     $this->assertEquals("CUSTOM", $campaign->template_type);
     $this->assertEquals("2012-12-06T18:06:05.255Z", $campaign->created_date);
     $this->assertEquals("2012-12-06T18:06:40.342Z", $campaign->last_run_date);
     $this->assertEquals(false, $campaign->is_permission_reminder_enabled);
     $this->assertEquals("", $campaign->permission_reminder_text);
     $this->assertEquals(false, $campaign->is_view_as_webpage_enabled);
     $this->assertEquals("Having trouble viewing this email?", $campaign->view_as_web_page_text);
     $this->assertEquals("Click Here", $campaign->view_as_web_page_link_text);
     $this->assertEquals("Hi", $campaign->greeting_salutations);
     $this->assertEquals("FIRST_NAME", $campaign->greeting_name);
     $this->assertEquals("", $campaign->greeting_string);
     $this->assertEquals("<html><body>Hi <a href=\"http://www.constantcontact.com\">Visit ConstantContact.com!</a> </body></html>", $campaign->email_content);
     $this->assertEquals("HTML", $campaign->email_content_format);
     $this->assertEquals("", $campaign->style_sheet);
     $this->assertEquals("<text>Something to test</text>", $campaign->text_content);
     // message footer
     $this->assertEquals("Waltham", $campaign->message_footer->city);
     $this->assertEquals("MA", $campaign->message_footer->state);
     $this->assertEquals("US", $campaign->message_footer->country);
     $this->assertEquals("WSPIOrgName", $campaign->message_footer->organization_name);
     $this->assertEquals("1601 Trapelo RD", $campaign->message_footer->address_line_1);
     $this->assertEquals("suite 2", $campaign->message_footer->address_line_2);
     $this->assertEquals("box 4", $campaign->message_footer->address_line_3);
     $this->assertEquals("", $campaign->message_footer->international_state);
     $this->assertEquals("02451", $campaign->message_footer->postal_code);
     $this->assertEquals(true, $campaign->message_footer->include_forward_email);
     $this->assertEquals("WSPIForwardThisEmail", $campaign->message_footer->forward_email_link_text);
     $this->assertEquals(true, $campaign->message_footer->include_subscribe_link);
     $this->assertEquals("WSPISubscribeLinkText", $campaign->message_footer->subscribe_link_text);
     // tracking summary
     $this->assertEquals(15, $campaign->tracking_summary->sends);
     $this->assertEquals(10, $campaign->tracking_summary->opens);
     $this->assertEquals(10, $campaign->tracking_summary->clicks);
     $this->assertEquals(3, $campaign->tracking_summary->forwards);
     $this->assertEquals(2, $campaign->tracking_summary->unsubscribes);
     $this->assertEquals(18, $campaign->tracking_summary->bounces);
     // sent to contact lists
     $this->assertEquals(1, count($campaign->sent_to_contact_lists));
     $this->assertEquals(3, $campaign->sent_to_contact_lists[0]->id);
     //click through details
     $this->assertEquals("http://www.constantcontact.com", $campaign->click_through_details[0]->url);
     $this->assertEquals("1100394163874", $campaign->click_through_details[0]->url_uid);
     $this->assertEquals(10, $campaign->click_through_details[0]->click_count);
 }