README.rdoc
== GetResponse
{<img src="https://travis-ci.org/seban/ruby-getresponse.png?branch=master" alt="Build Status" />}[https://travis-ci.org/seban/ruby-getresponse]
{<img src="https://codeclimate.com/github/seban/ruby-getresponse.png" />}[https://codeclimate.com/github/seban/ruby-getresponse]
{<img src="https://badge.fury.io/rb/getresponse.png" alt="Gem Version" />}[http://badge.fury.io/rb/getresponse]
{<img src="https://gemnasium.com/seban/ruby-getresponse.png" alt="Dependency Status" />}[https://gemnasium.com/seban/ruby-getresponse]
Wrapper for GetResponse API.
Class interfaces from version 0.2 has changed breaking backward compatibility.
Be sure to check changes before update.
== Compatibility issue
Next release (0.6) of getresponse gem will not be compatible with Ruby 1.8.
== Usage
Just add to you Gemfile
gem "getresponse", :require => "get_response"
GetResponse offers three API end point according which type of client you are. Standard retail
clients (getresponse.com etc.) should use GetResponse::Connection class to communicate with API. If
you are client of getresponse360.com class GetResponse::DedicatedUsConnection will suit for you.
Client of polish getresponse360.pl should use GetResponse::DedicatedPlConnection.
Test connection to GetResponse API.
gr_connection = GetResponse::Connection.new("my_secret_api")
gr_connection.ping
Get info about account:
gr_connection.account
Get your active campaigns.
gr_connection.campaigns.all
You can operate on your contacts quite the same way as on ActiveRecord objects. Before any operation
on contacts you must connect to API.
Get all contacts:
gr_connection.contacts.all
Create new contact:
# with connection
gr_connection.contacts.create("name" => "John Doe", "email" => "john.d@somewhere.com",
"campaign" => "campaignId", "customs" => { "source" => "mainpage" })
Update your contact:
# with connection
# contact - existing contact
contact.update("name" => "John Thenewname")
# or
contact.name = "John Thenewname"
contact.save
Delete contact:
# with connection
# contact - existing contact
contact.destroy
Move contact between campaigns:
# with connection
# contact - existing contact
# zXy - existing campaign
contact.move("zXy")
Get geoip location
# with connection
# contact - existing contact
contact.geoip
Set contact cycle
# with connection
# contact - existing contact
contact.set_cycle(5)
Get custom attributes
# with connection
# contact - existing contact
contact.customs
=> { "attr_name" => "attr_value" }
Get account from fields
# with account
# account - existing account
account.from_fields.all
=> [<FromField: xcv>]
Add account from field
# with account
# account = existing account
account.from_fields.create("name" => "My new name", "email" => "my_new_email@foo.bar")
=> #<GetResponse::FromField:0xb7727010 ... >
Get account domains
# with account
# account - existing account
account.domains.all
Get campaign domain
# with campaign
# campaign - existing campaign
campaign.domain
Set campaign domain
domain = account.domains.first
campaign.domain = domain
Get campaign messages
# with campaign
# campaign - existing campaign
messages = campaign.messages
newsletters = campaign.messages(:type => "newsletter")
Get all messages
# with connection
connection.messages.all
Get message contents
# with message
# message - existing messsage
message.contents["plain"]
message.contents["html"]
Get stats of message
# message - existing message
message.stats
Delete message
# message - existing message
message.destroy
Get/set campaign's postal address
# campaign_one - existing campaign
# campaign_two - existing campaign
postal_address = campaign_one.postal_address
campaign_two.postal_address = postal_address
To get contact openned message list with dates
# contact - existing contact
@contact.opens
Get subscriptions statistics
# campaign - existing campaign
campaign.subscription_statistics
campaign.subscription_statistics(:created_on => {:at => Date.today})
campaign.subscription_statistics(:created_on => {:from => "2011-01-01", :to => "2011-12-30"})
Get confirmation message bodies
# connection - existing connection
connection.confirmation_bodies.all
connection.confirmation_bodies.all(:language_code => {:equals => "en"})
Get confirmation message subjects
# connection - existing connection
connection.confirmation_subjects.all
connection.confirmation_subjects.all(:language_code => {:equals => "en"})
Get deleted contacts
contact_proxy.deleted
contact_proxy.deleted(:reason => "bounce")
campaign.deleted
Get single field form by id
from_field_proxy.find("from_field_id")
Get single confirmation body by id
confirmation_body_proxy.find("confirmation_body_id")
Get single confirmation subject by id
confirmation_subject_proxy.find("confirmation_subject_id")
Create new campaign
connection.campaigns.create(new_campaign_attributes)
Fetching links embedded in messages
connection.links.all
message.links
Fetching blacklisted addresses for account
account.blacklist
Fetching blacklisted addresses for campaign
campaign.blacklist
Creating follow up message:
campaign.create_follow_up({
"subject" => "My new followup",
"day_of_cycle" => 1024,
"contents" => {
"plain" => "Hello, it is my follow up!",
"html" => "<b>Hello</b>, it is my follow up!"
}
})