- Upgrades to Createsend API v3.2 which includes new breaking changes
- Breaking: 'Consent to track' field is now mandatory for sending smart and classic transactionl emails
- Breaking: 'Consent to track' field is now mandatory when adding or updating subscribers
- Optional 'Include tracking preference' field when retrieving lists of subscribers
- Fix for the GZip compression issue: jnunemaker/httparty#562
- Drop support for Ruby 1.9.3 (#49)
- Allow JSON 2 to be used (#48 and #50)
- Bump
httparty
to~> 0.14
(#50)
- Added support for Transactional Email
- Bumped and simplified
hashie
dependency to~> 3.0
- This is a patch release which only changes development dependencies.
- Removed development dependency on
shoulda
and added more suitable dependency onshoulda-context
instead.
- Removed
CreateSend::CreateSend#apikey
to promote using OAuth rather than basic auth with an API key. - Started using the
https://api.createsend.com/api/v3.1/
API endpoint. - Added support for new segments structure.
-
Create and Update calls now require the new
rule_groups
structure, instead of arules
structure.CreateSend::Segment.create(auth, list_id, title, rule_groups) CreateSend::Segment.update(title, rule_groups)
So for example, when you previously would have created an argument like so:
rules = [ { :Subject => "EmailAddress", :Clauses => [ "CONTAINS example.com" ] } ]
You would now do this:
rule_groups = [ { :Rules => [ { :RuleType => "EmailAddress", :Clause => "CONTAINS example.com" } ] } ]
-
The Add Rule call is now Add Rule Group, taking a collection of rules in a single
rule_group
argument instead of separatesubject
&clauses
arguments.CreateSend::Segment.add_rule_group(rule_group)
So for example, when you previously would have added a rule like so:
@segment.add_rule "EmailAddress", [ "CONTAINS example.com" ]
You would now do this:
@segment.add_rule_group [ { :RuleType => "EmailAddress", :Clause => "CONTAINS @hello.com" } ]
-
- Added support for validating SSL certificates to avoid man-in-the-middle attacks.
-
Added Ruby version and platform details to default user agent string.
-
Added support for setting a custom user agent string.
You can set a custom user agent string to be used for API calls by doing the following:
CreateSend::CreateSend.user_agent "custom user agent"
- Added support for single sign on which allows initiation of external login sessions to Campaign Monitor.
- Fixed a bug occurring sometimes when refreshing OAuth access tokens, because of a URL encoding issue.
-
Added
CreateSend::CreateSend.refresh_access_token
to allow easier refreshing of access tokens when using class methods.So you can now refresh an access token using any refresh token like so:
access_token, expires_in, refresh_token = CreateSend::CreateSend.refresh_access_token 'refresh token'
Or, you can refresh the current access token (with your current refresh token) like so:
cs = CreateSend::CreateSend.new :access_token => 'access token', :refresh_token => 'refresh token' access_token, expires_in, refresh_token = cs.refresh_token
-
Added
CreateSend::InvalidOAuthToken
andCreateSend::RevokedOAuthToken
exceptions to make handling of OAuth exceptions in user code easier.
- Added support for authenticating using OAuth. See the README for full usage instructions.
- Refactored authentication so that it is always done at the instance level. This introduces some breaking changes, which are clearly explained below.
-
Authentication is now always done at the instance level.
So when you previously would have authenticated using an API key as follows:
CreateSend.api_key "your api key" cs = CreateSend::CreateSend.new cs.clients
If you want to authenticate using an API key, you should now do this:
auth = {:api_key => "your api key"} cs = CreateSend::CreateSend.new auth cs.clients
-
Instances of
CreateSend::CreateSend
(and all subclasses) are now always created by passing anauth
hash as the first argument.So for example, when you previously would have called
CreateSend::Client.new
like so:CreateSend.api_key "your api key" cl = CreateSend::Client.new "your client id"
You now call
CreateSend::Client.new
like so:auth = {:api_key => "your api key"} cl = CreateSend::Client.new auth, "your client id"
-
Any of the class methods on
CreateSend::CreateSend
(and all subclasses) are now always called by passing anauth
hash as the first argument.So for example, when you previously would have called
CreateSend::Subscriber.add
like so:CreateSend.api_key "your api key" sub = CreateSend::Subscriber.add "list id", "[email protected]", "Dave", [], true
You now call
CreateSend::Subscriber.add
like so:auth = {:api_key => "your api key"} sub = CreateSend::Subscriber.add auth, "list id", "[email protected]", "Dave", [], true
-
- Updated dependencies in gemspec. Removed cane as a development dependency.
- Added support for including from name, from email, and reply to email in drafts, scheduled, and sent campaigns.
- Added support for campaign text version urls.
- Added support for transferring credits to/from a client.
- Added support for getting account billing details as well as client credits.
- Made all date fields optional when getting paged results.
- Added CreateSend::Campaign#email_client_usage.
- Added support for ReadsEmailWith field on subscriber objects.
- Added support for retrieving unconfirmed subscribers for a list.
- Added support for suppressing email addresses.
- Added support for retrieving spam complaints for a campaign, as well as adding SpamComplaints field to campaign summary output.
- Added VisibleInPreferenceCenter field to custom field output.
- Added support for setting preference center visibility when creating custom fields.
- Added the ability to update a custom field name and preference visibility.
- Added documentation explaining that text_url may now be nil or an empty string when creating a campaign.
- Added support for creating campaigns from templates.
- Added support for unsuppressing an email address.
- Improved documentation and tests for getting active subscribers. Clearly documented the data structure for multi option multi select fields.
- Added WorldviewURL field to campaign summary response.
- Added Latitude, Longitude, City, Region, CountryCode, and CountryName fields to campaign opens and clicks response.
- Added support for basic / unlimited pricing.
- Added support for UnsubscribeSetting field when creating, updating and getting list details.
- Added support for including AddUnsubscribesToSuppList and ScrubActiveWithSuppList fields when updating a list.
- Added support for getting all client lists to which a subscriber with a specific email address belongs.
- Removed deprecated warnings and disallowed calls to be made in a deprecated manner.
- Added support for specifying whether subscription-based autoresponders should be restarted when adding or updating subscribers.
- Added support for newly released team management functionality.
- Added Travis CI support.
- Added Gemnasium support.
- Fixes to usage of Shoulda and Hashie libraries.
- Fixes to support Ruby 1.9.* (both the library as well as the rake tasks).
- Fixed the User-Agent header so that it now uses the correct module VERSION.
- Added support for deleting a subscriber.
- Added support for specifying a 'clear' field when updating or importing subscribers.
- Added support for queuing subscription-based autoresponders when importing subscribers.
- Added support for retrieving deleted subscribers.
- Added support for including more social sharing stats in campaign summary.
- Added support for unscheduling a campaign.
- Remove CreateSendOptions and remove usage of yaml config file.
- Initial release which supports current Campaign Monitor API.