<img src=“https://travis-ci.org/seban/ruby-getresponse.png?branch=master” alt=“Build Status” /> <img src=“https://codeclimate.com/github/seban/ruby-getresponse.png” /> <img src=“https://badge.fury.io/rb/getresponse.png” alt=“Gem Version” /> <img src=“https://gemnasium.com/seban/ruby-getresponse.png” alt=“Dependency Status” />
Wrapper for GetResponse API. Class interfaces from version 0.2 has changed breaking backward compatibility. Be sure to check changes before update.
Next release (0.6) of getresponse gem will not be compatible with Ruby 1.8.
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
Get a contact by ‘CONTACT_ID`:
gr_connection.contacts.find(params[:CONTACT_ID])
Get a contact by ‘email`:
gr_connection.contacts.by_email(params[:email])
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!" } })