NAME
Net::CampaignMonitor - A Perl wrapper for the Campaign Monitor API.
VERSION
This documentation refers to version v2.2.1.
SYNOPSIS
my $cm = Net::CampaignMonitor->new({
access_token => 'your access token' ,
refresh_token => 'your refresh token' ,
secure => 1,
timeout => 300,
});
|
DESCRIPTION
Net::CampaignMonitor provides a Perl wrapper for the Campaign Monitor API.
METHODS
OAuth utility methods
authorize_url
Get the authorization URL for your OAuth application, given the application's Client ID, Redirect URI, Permission scope, and optional state data.
my $authorize_url = Net::CampaignMonitor->authorize_url({
client_id => 'Your app client ID' ,
redirect_uri => 'Redirect URI for your application' ,
scope => 'The permission scope required by your application' ,
state => 'Optional state data'
});
|
exchange_token
Exchange a unique OAuth code for an OAuth access token and refresh token.
my $token_details = Net::CampaignMonitor->exchange_token(
client_id => 'Client ID for your application' ,
client_secret => 'Client Secret for your application' ,
redirect_uri => 'Redirect URI for your application' ,
code => 'A unique code for your user'
);
|
The resulting variable $token_details will be of the form:
{
'refresh_token' => 'refresh token' ,
'expires_in' => 1209600,
'access_token' => 'access token'
}
|
Construction and setup
new
If you want to authenticate using OAuth:
my $cm = Net::CampaignMonitor->new({
access_token => 'your access token' ,
refresh_token => 'your refresh token' ,
secure => 1,
timeout => 300,
});
|
Or if you want to authenticate using an API key:
my $cm = Net::CampaignMonitor->new({
api_key => 'abcd1234abcd1234abcd1234' ,
secure => 1,
timeout => 300,
});
|
Construct a new Net::CampaignMonitor object. Takes an optional hash reference of config options. The options are:
access_token - The OAuth access token to use when making Campaign Monitor API requests.
refresh_token - The OAuth refresh token to use to renew access_token when it expires.
api_key - The api key for the Campaign Monitor account. If none is supplied the only function which will work is account_apikey.
secure - Set to 1 (secure) or 0 (insecure) to determine whether to use http or https. Defaults to secure.
timeout - Set the timeout for the authentication. Defaults to 600 seconds.
OAuth-specific functionality
refresh_token
Refresh the current OAuth access token using the current refresh token. After making this call successfully, you will be able to continue making further API calls.
my $new_token_details = $cm ->refresh_token();
|
The resulting variable $new_token_details will be of the form:
{
'refresh_token' => 'new refresh token' ,
'expires_in' => 1209600,
'access_token' => 'new access token'
}
|
Core API functionality
All the following methods return a hash containing the Campaign Monitor response code, the headers and the actual response.
my %results = (
code => '' ,
response => '' ,
headers => ''
);
|
account_clients
Getting your clients
my $clients = $cm ->account_clients();
|
Creating a client
my $client = $cm ->account_clients((
'CompanyName' => "ACME Limited" ,
'Country' => "Australia" ,
'TimeZone' => "(GMT+10:00) Canberra, Melbourne, Sydney"
));
|
account_billingdetails
Getting your billing details
my $billing_details = $cm ->account_billingdetails()
|
account_apikey
Getting your API key
my $apikey = $cm ->account_apikey( $siteurl , $username , $password )
|
account_countries
Getting valid countries
my $countries = $cm ->account_countries();
|
account_timezones
Getting valid timezones
my $timezones = $cm ->account_timezones();
|
account_systemdate
Getting current date
my $systemdate = $cm ->account_systemdate();
|
account_addadmin
Adds a new administrator to the account. An invitation will be sent to the new administrator via email.
my $person_email = $cm ->account_addadmin((
'EmailAddress' => "jane\@example.com" ,
'Name' => "Jane Doe"
));
|
account_updateadmin
Updates the email address and/or name of an administrator.
my $admin_email = $cm ->account_updateadmin((
'email' => "jane\@example.com" ,
'EmailAddress' => "jane.new\@example.com" ,
'Name' => "Jane Doeman"
));
|
account_getadmins
Contains a list of all (active or invited) administrators associated with a particular account.
my $admins = $cm ->account_getadmins();
|
account_getadmin
Returns the details of a single administrator associated with an account.
my $admin_details = $cm ->account_getadmin( $email );
|
account_deleteadmin
Changes the status of an active administrator to a deleted administrator.
my $result = $cm ->account_deleteadmin( $admin_email );
|
Sets the primary contact for the account to be the administrator with the specified email address.
my $primarycontact_email = $cm ->account_setprimarycontact( $admin_email );
|
Returns the email address of the administrator who is selected as the primary contact for this account.
my $primarycontact_email = $cm ->account_getprimarycontact();
|
account_externalsession
Returns a URL which initiates a new external Campaign Monitor login session for the user with the given email.
my $external_session = $cm ->account_externalsession((
'Email' => 'example@example.com' ,
'Chrome' => 'None' ,
'Url' => '/subscribers/search?search=belle@example.com' ,
'IntegratorID' => 'a1b2c3d4e5f6' ,
'ClientID' => 'aaa111bbb222ccc333'
));
|
campaigns
Creating a draft campaign
my $campaign = $cm ->campaigns((
'clientid' => 'b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2' ,
'ListIDs' => [
'a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1' ,
'a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1'
],
'FromName' => 'My Name' ,
'Subject' => 'My Subject' ,
'SegmentIDs' => [
'a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1' ,
'a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1'
],
'FromEmail' => 'myemail@mydomain.com' ,
'Name' => 'My Campaign Name' ,
'ReplyTo' => 'myemail@mydomain.com' ,
));
|
The clientid must be in the hash.
campaigns_fromtemplate
Creating a campaign from a template
my $template_content = {
'Singlelines' => [
{
'Content' => "This is a heading" ,
}
],
'Multilines' => [
{
'Content' => "<p>This is example</p><p>multiline <a href=\"http://example.com\">content</a>...</p>" }
],
'Images' => [
{
'Alt' => "This is alt text for an image" ,
}
],
'Repeaters' => [
{
'Items' => [
(
'Layout' => "My layout" ,
'Singlelines' => [
{
'Content' => "This is a repeater heading" ,
}
],
'Multilines' => [
{
'Content' => "<p>This is example</p><p>multiline <a href=\"http://example.com\">content</a>...</p>" }
],
'Images' => [
{
'Alt' => "This is alt text for a repeater image" ,
}
]
}
]
}
]
};
|
The $template_content variable as defined above would be used to fill the content of a template with markup similar to the following:
<html>
<head><title>My Template</title></head>
<body>
<p><singleline>Enter heading...</singleline></p>
<div><multiline>Enter description...</multiline></div>
<img id= "header-image" editable= "true" width= "500" />
<repeater>
<layout label= "My layout" >
<div class= "repeater-item" >
<p><singleline></singleline></p>
<div><multiline></multiline></div>
<img editable= "true" width= "500" />
</div>
</layout>
</repeater>
<p><unsubscribe>Unsubscribe</unsubscribe></p>
</body>
</html>
my $campaign = $cm ->campaigns_fromtemplate((
'clientid' => 'b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2' ,
'Name' => 'My Campaign Name' ,
'Subject' => 'My Subject' ,
'FromName' => 'My Name' ,
'FromEmail' => 'myemail@mydomain.com' ,
'ReplyTo' => 'myemail@mydomain.com' ,
'ListIDs' => [
'a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1' ,
'a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1'
],
'SegmentIDs' => [
'a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1' ,
'a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1'
],
'TemplateID' => '82938273928739287329873928379283' ,
'TemplateContent' => $template_content ,
));
|
The clientid must be in the hash.
campaigns_send
Sending a draft campaign
my $send_campaign = $cm ->campaigns_send((
'campaignid' => 'b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2' ,
'SendDate' => 'YYYY-MM-DD HH:MM' ,
'ConfirmationEmail' => 'myemail@mydomain.com' ,
));
|
The campaignid must be in the hash.
campaigns_unschedule
Unscheduling a scheduled campaign
my $unscheduled = $cm ->campaigns_unschedule((
'campaignid' => 'b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2' ,
));
|
The campaignid must be in the hash.
campaigns_sendpreview
Sending a campaign preview
my $send_preview_campaign = $cm ->campaigns_sendpreview(
'campaignid' => $campaign_id ,
'PreviewRecipients' => [
'test1@example.com' ,
'test2@example.com'
],
'Personalize' => 'Random' ,
));
|
The campaignid must be in the hash.
campaigns_summary
Campaign summary
my $campaign_summary = $cm ->campaigns_summary( $campaign_id );
|
campaigns_summary
Campaign email client usage
my $email_client_usage = $cm ->campaigns_emailclientusage( $campaign_id );
|
campaigns_listsandsegments
Campaign lists and segments
my $campaign_listsandsegments = $cm ->campaigns_listsandsegments( $campaign_id );
|
campaigns_recipients
Campaign recipients
my $campaign_recipients = $cm ->campaigns_recipients (
'campaignid' => $campaign_id ,
'page' => '1' ,
'pagesize' => '100' ,
'orderfield' => 'email' ,
'orderdirection' => 'asc' ,
));
|
campaigns_bounces
Campaign bounces
my $campaign_bounces = $cm ->campaigns_bounces (
'campaignid' => $campaign_id ,
'page' => '1' ,
'pagesize' => '100' ,
'orderfield' => 'email' ,
'orderdirection' => 'asc' ,
));
|
campaigns_opens
Campaign opens
my $campaign_opens = $cm ->campaigns_opens (
'campaignid' => $campaign_id ,
'date' => '1900-01-01' ,
'page' => '1' ,
'pagesize' => '100' ,
'orderfield' => 'email' ,
'orderdirection' => 'asc' ,
));
|
campaigns_clicks
Campaign clicks
my $campaign_clicks = $cm ->campaigns_clicks (
'campaignid' => $campaign_id ,
'date' => '1900-01-01' ,
'page' => '1' ,
'pagesize' => '100' ,
'orderfield' => 'email' ,
'orderdirection' => 'asc' ,
));
|
campaigns_unsubscribes
Campaign unsubscribes
my $campaign_unsubscribes = $cm ->campaigns_unsubscribes (
'campaignid' => $campaign_id ,
'date' => '1900-01-01' ,
'page' => '1' ,
'pagesize' => '100' ,
'orderfield' => 'email' ,
'orderdirection' => 'asc' ,
));
|
campaigns_spam
Campaign spam complaints
my $campaign_spam = $cm ->campaigns_spam (
'campaignid' => $campaign_id ,
'date' => '1900-01-01' ,
'page' => '1' ,
'pagesize' => '100' ,
'orderfield' => 'email' ,
'orderdirection' => 'asc' ,
));
|
campaigns_delete
Deleting a draft
my $campaign_delete = $cm ->campaigns_delete( $campaign_id );
|
client_clientid
Getting a client's details
my $client_details = $cm ->client_clientid( $client_id );
|
client_campaigns
Getting sent campaigns
my $client_campaigns = $cm ->client_campaigns( $client_id );
|
client_drafts
Getting draft campaigns
my $client_drafts = $cm ->client_drafts( $client_id );
|
client_drafts
Getting scheduled campaigns
my $client_scheduled = $cm ->client_scheduled( $client_id );
|
client_lists
Getting subscriber lists
my $client_lists = $cm ->client_lists( $client_id );
|
client_listsforemail
Getting lists for an email address
my $lists = $cm ->client_listsforemail((
'clientid' => $client_id ,
'email' => 'example@example.com' ,
));
|
client_segments
Getting segments
my $client_segments = $cm ->client_segments( $client_id );
|
client_idionlist
Getting suppression list
my $client_suppressionlist = $cm ->client_suppressionlist((
'clientid' => $client_id ,
'page' => '1' ,
'pagesize' => '100' ,
'orderfield' => 'email' ,
'orderdirection' => 'asc' ,
));
|
client_suppress
Suppress email addresses
my $suppressed = $cm ->client_suppress((
'EmailAddresses' => [ 'example123@example.com' , 'example456@example.com' ],
'clientid' => $client_id ,
));
|
client_unsuppress
Unsuppress an email address
my $unsuppressed = $cm ->client_unsuppress((
'email' => 'example123@example.com' ,
'clientid' => $client_id ,
));
|
client_templates
Getting templates
my $client_templates = $cm ->client_templates( $client_id );
|
client_setbasics
Setting basic details
my $client_basic_details = $cm ->client_setbasics((
'clientid' => $client_id ,
'CompanyName' => "ACME Limited" ,
'Country' => "Australia" ,
'TimeZone' => "(GMT+10:00) Canberra, Melbourne, Sydney" ,
));
|
client_setpaygbilling
Setting PAYG billing
my $client_payg = $cm ->client_setpaygbilling((
'clientid' => $client_id ,
'Currency' => 'AUD' ,
'CanPurchaseCredits' => 'false' ,
'ClientPays' => 'true' ,
'MarkupPercentage' => '20' ,
'MarkupOnDelivery' => '5' ,
'MarkupPerRecipient' => '4' ,
'MarkupOnDesignSpamTest' => '3' ,
));
|
client_setmonthlybilling
Setting monthly billing
my $client_monthly = $cm ->client_setmonthlybilling((
'clientid' => $client_id ,
'Currency' => 'AUD' ,
'ClientPays' => 'true' ,
'MarkupPercentage' => '20' ,
));
|
client_transfercredits
Transfer credits to/from a client
my $result = $cm ->client_transfercredits((
'clientid' => $client_id ,
'Credits' => '0' ,
'CanUseMyCreditsWhenTheyRunOut' => 'true' ,
));
|
client_delete
Deleting a client
my $client_deleted = $cm ->client_delete( $client_id );
|
client_addperson
Adds a new person to the client.
my $person_email = $cm ->client_addperson((
'clientid' => $client_id ,
'EmailAddress' => "joe\@example.com" ,
'Name' => "Joe Doe" ,
'AccessLevel' => 23,
'Password' => "safepassword"
));
|
client_updateperson
Updates any aspect of a person including their email address, name and access level..
my $person_email = $cm ->client_updateperson((
'clientid' => $client_id ,
'email' => "joe\@example.com" ,
'EmailAddress' => "joe.new\@example.com" ,
'Name' => "Joe Doe" ,
'AccessLevel' => 23,
'Password' => "safepassword"
));
|
client_getpeople
Contains a list of all (active or invited) people associated with a particular client.
my $client_access -settings = $cm ->client_getpeople( $client_id );
|
client_getperson
Returns the details of a single person associated with a client.
my $person_details = $cm ->client_getperson((
'clientid' => $client_id ,
'email' => "joe\@example.com" ,
));
|
client_deleteperson
Contains a list of all (active or invited) people associated with a particular client.
my $result = $cm ->client_deleteperson((
'clientid' => $client_id ,
'email' => "joe\@example.com" ,
));
|
Sets the primary contact for the client to be the person with the specified email address.
my $primarycontact_email = $cm ->client_setprimarycontact((
'clientid' => $client_id ,
'email' => "joe\@example.com" ,
));
|
Returns the email address of the person who is selected as the primary contact for this client.
my $primarycontact_email = $cm ->client_getprimarycontact( $client_id );
|
lists
Creating a list
my $list = $cm ->lists((
'clientid' => $client_id ,
'Title' => 'Website Subscribers' ,
'UnsubscribeSetting' => 'AllClientLists' ,
'ConfirmedOptIn' => 'false' ,
));
|
list_listid
List details
my $list = $cm ->list_listid( $list_id );
|
Updating a list
my $updated_list = $cm ->list_listid((
'listid' => $list_id ,
'Title' => 'Website Subscribers' ,
'UnsubscribeSetting' => 'AllClientLists' ,
'ConfirmedOptIn' => 'false' ,
'AddUnsubscribesToSuppList' => 'true' ,
'ScrubActiveWithSuppList' => 'true' ,
));
|
list_stats
List stats
my $list_stats = $cm ->list_stats( $list_id );
|
list_segments
List segments
my $list_segments = $cm ->list_segments( $list_id );
|
list_active
Active subscribers
my $list_active_subscribers = $cm ->list_active((
'listid' => $list_id ,
'date' => '1900-01-01' ,
'page' => '1' ,
'pagesize' => '100' ,
'orderfield' => 'email' ,
'orderdirection' => 'asc' ,
));
|
list_unconfirmed
Unconfirmed subscribers
my $unconfirmed_subscribers = $cm ->list_unconfirmed((
'listid' => $list_id ,
'date' => '1900-01-01' ,
'page' => '1' ,
'pagesize' => '100' ,
'orderfield' => 'email' ,
'orderdirection' => 'asc' ,
));
|
list_unsubscribed
Unsubscribed subscribers
my $list_unsubscribed_subscribers = $cm ->list_unsubscribed((
'listid' => $list_id ,
'date' => '1900-01-01' ,
'page' => '1' ,
'pagesize' => '100' ,
'orderfield' => 'email' ,
'orderdirection' => 'asc' ,
));
|
list_deleted
Deleted subscribers
my $list_deleted_subscribers = $cm ->list_deleted((
'listid' => $list_id ,
'date' => '1900-01-01' ,
'page' => '1' ,
'pagesize' => '100' ,
'orderfield' => 'email' ,
'orderdirection' => 'asc' ,
));
|
list_bounced
Bounced subscribers
my $list_bounced_subscribers = $cm ->list_bounced((
'listid' => $list_id ,
'date' => '1900-01-01' ,
'page' => '1' ,
'pagesize' => '100' ,
'orderfield' => 'email' ,
'orderdirection' => 'asc' ,
));
|
list_customfields
List custom fields
my $list_customfields = $cm ->list_customfields( $list_id );
|
Creating a custom field
my $custom_field = $cm ->list_customfields((
'listid' => $list_id ,
'FieldName' => 'Newsletter Format' ,
'DataType' => 'MultiSelectOne' ,
'Options' => [ "HTML" , "Text" ],
));
|
list_customfields_update
Updating a custom field
my $updated_custom_field = $cm ->list_customfields_update((
'listid' => $list_id ,
'customfieldkey' => '[NewsletterFormat]' ,
'FieldName' => 'Renamed Newsletter Format' ,
'VisibleInPreferenceCenter' => 'false' ,
));
|
list_options
Updating custom field options
my $updated_options = $cm ->list_options((
'listid' => $list_id ,
'KeepExistingOptions' => 'true' ,
'Options' => [ "First Option" , "Second Option" , "Third Option" ],
'customfieldkey' => '[NewsletterFormat]' ,
));
|
list_delete_customfieldkey
Deleting a custom field
my $deleted_customfield = $cm ->list_delete_customfieldkey((
'listid' => $list_id ,
'customfieldkey' => '[NewsletterFormat]' ,
));
|
list_delete
Deleting a list
my $deleted_list = $cm ->list_delete( $list_id );
|
list_webhooks
List webhooks
my $webhooks = $cm ->list_webhooks( $list_id );
|
Creating a webhook
my $webhook = $cm ->list_webhooks((
'listid' => $list_id ,
'Events' => [ "Subscribe" ],
'PayloadFormat' => 'json' ,
));
|
list_test
Testing a webhook
my $webhook = $cm ->list_test((
'listid' => $list_id ,
'webhookid' => $webhook_id ,
));
|
list_delete_webhook
Deleting a webhook
my $deleted_webhook = $cm ->list_delete_webhook((
'listid' => $list_id ,
'webhookid' => $webhook_id ,
));
|
list_activate
Activating a webhook
my $activated_webhook = $cm ->list_activate((
'listid' => $list_id ,
'webhookid' => $webhook_id ,
));
|
list_deactivate
Deactivating a webhook
my $deactivated_webhook = $cm ->list_deactivate((
'listid' => $list_id ,
'webhookid' => $webhook_id ,
));
|
segments
Creating a segment
my $segment = $cm ->segments((
'listid' => $list_id ,
'Rules' => [
{
'Subject' => 'EmailAddress' ,
'Clauses' => [
'CONTAINS @domain.com'
]
},
{
'Subject' => 'DateSubscribed' ,
'Clauses' => [
'AFTER 2009-01-01' ,
'EQUALS 2009-01-01'
]
},
{
'Subject' => 'DateSubscribed' ,
'Clauses' => [
'BEFORE 2010-01-01'
]
}
],
'Title' => 'My Segment' ,
));
|
segment_segmentid
Updating a segment
my $updated_segment = $cm ->segment_segmentid((
'segmentid' => $segment_id ,
'Rules' => [
{
'Subject' => 'EmailAddress' ,
'Clauses' => [
'CONTAINS @domain.com'
]
},
{
'Subject' => 'DateSubscribed' ,
'Clauses' => [
'AFTER 2009-01-01' ,
'EQUALS 2009-01-01'
]
},
{
'Subject' => 'DateSubscribed' ,
'Clauses' => [
'BEFORE 2010-01-01'
]
}
],
'Title' => 'My Segment' ,
));
|
Getting a segment's details
my $updated_segment = $cm ->segment_segmentid( $segment_id );
|
segment_rules
Adding a segment rule
my $new_rules = $cm ->segment_rules((
'segmentid' => $segment_id ,
'Subject' => 'Name' ,
'Clauses' => [
'NOT_PROVIDED' ,
'EQUALS Subscriber Name'
],
));
|
segment_active
Getting segment subscribers
my $segment_subs = $cm ->segment_active((
'segmentid' => $segment_id ,
'date' => '1900-01-01' ,
'page' => '1' ,
'pagesize' => '100' ,
'orderfield' => 'email' ,
'orderdirection' => 'asc' ,
));
|
segment_delete
Deleting a segment
my $deleted_segment = $cm ->segment_delete( $segment_id );
|
segment_delete_rules
Deleting a segment's rules
my $deleted_segment_rules = $cm ->segment_delete_rules( $segment_id );
|
subscribers
Adding a subscriber
my $added_subscriber = $cm ->subscribers((
'listid' => $list_id ,
'Resubscribe' => 'true' ,
'RestartSubscriptionBasedAutoresponders' => 'true' ,
'CustomFields' => [
{
'Key' => 'website'
},
{
'Value' => 'magic' ,
'Key' => 'interests'
},
{
'Value' => 'romantic walks' ,
'Key' => 'interests'
}
],
'Name' => 'New Subscriber' ,
'EmailAddress' => 'subscriber@example.com' ,
));
|
Getting a subscriber's details
my $subs_details = $cm ->subscribers((
'listid' => $list_id ,
'email' => 'subscriber@example.com' ,
));
|
subscribers_update
Updating a subscriber
my $updated_subscriber = $cm ->subscribers_update((
'Resubscribe' => 'true' ,
'RestartSubscriptionBasedAutoresponders' => 'true' ,
'CustomFields' => [
{
'Key' => 'website'
},
{
'Value' => 'magic' ,
'Key' => 'interests'
},
{
'Value' => '' ,
'Key' => 'interests' ,
'Clear' => 'true'
}
],
'Name' => 'Renamed Subscriber' ,
'EmailAddress' => 'subscriber@example.com' ,
'listid' => $list_id ,
'email' => 'subscriber@example.com'
));
|
subscribers_import
Importing many subscribers
my $imported_subs = $cm ->subscribers_import((
'listid' => $list_id ,
'Subscribers' => [
{
'CustomFields' => [
{
'Key' => 'website'
},
{
'Value' => 'magic' ,
'Key' => 'interests'
},
{
'Value' => 'romantic walks' ,
'Key' => '' ,
'Clear' => 'true'
}
],
'Name' => 'New Subscriber One' ,
'EmailAddress' => 'subscriber1@example.com'
},
{
'Name' => 'New Subscriber Two' ,
'EmailAddress' => 'subscriber2@example.com'
},
{
'Name' => 'New Subscriber Three' ,
'EmailAddress' => 'subscriber3@example.com'
}
],
'Resubscribe' => 'true' ,
'QueueSubscriptionBasedAutoResponders' => 'false' ,
'RestartSubscriptionBasedAutoresponders' => 'true' ,
));
|
subscribers_history
Getting a subscriber's history
my $subs_history = $cm ->subscribers_history((
'listid' => $list_id ,
'email' => 'subscriber@example.com' ,
));
|
subscribers_unsubscribe
Unsubscribing a subscriber
my $unsub_sub = $cm ->subscribers_unsubscribe((
'listid' => $list_id ,
'EmailAddress' => 'subscriber@example.com' ,
));
|
subscribers_delete
Deleting a subscriber
my $deleted = $cm ->subscribers_delete((
'listid' => $list_id ,
'email' => 'subscriber@example.com' ,
));
|
templates
Getting a template
my $template = $cm ->templates( $template_id );
|
Creating a template
my $template = $cm ->templates((
'clientid' => $client_id
'Name' => 'Template Two' ,
));
|
Updating a template
my $updated_template = $cm ->templates(
'templateid' => $template_id
'Name' => 'Template Two' ,
));
|
templates_delete
Deleting a template
my $deleted_template = $cm ->templates_delete( $template_id );
|
INSTALLATION NOTES
In order to run the full test suite you will need to provide an API Key. This can be done in the following way.
cpan CAMPAIGN_MONITOR_API_KEY=<your_api_key> Net::CampaignMonitor
|
If you do not do this almost all of the tests will be skipped.
BUGS
Not quite a bug. This module uses REST::Client. REST::Client fails to install properly on Windows due to this bug. You will need to make REST::Client install without running tests to install it.
MAINTAINER
Campaign Monitor <support@campaignmonitor.com>
AUTHOR
Jeffery Candiloro <jeffery@cpan.org>
COPYRIGHT
Copyright (c) 2012, Campaign Monitor <support@campaignmonitor.com<gt>. All rights reserved.
Copyright (c) 2011, Jeffery Candiloro <jeffery@cpan.org<gt>. All rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
The full text of the license can be found in the LICENSE file included with this module.