essential-ruby

Quick Start

require 'essential'

Essential.sid = ENV['ESSENTIAL_SID']
Essential.token = ENV['ESSENTIAL_TOKEN']

default_channel = Essential::Messaging::Channel.list.first

message = default_channel.messages.create(
  subscriber: '2065551212',
  body: "Hello there."
)
puts message.sid

Usage

Initial Setup

require 'essential'
# Essential.api_base = 'http://127.0.0.1:3000'
Essential.sid = ENV['ESSENTIAL_SID']
Essential.token = ENV['ESSENTIAL_TOKEN']

Account

 = Essential::Account.retrieve

Channels

.channels.map{|ch| {ch.sid => ch.name}}.reduce(&:merge)
# => {"ch_p03Gjl8Uzn0RkZSpHXHnrw"=>"default", "ch_QsbrYCSo2m0sShMLOlZqtw"=>"yradnoces"}
channel = Essential::Messaging::Channel.retrieve('ch_p03Gjl8Uzn0RkZSpHXHnrw')
channel.update(name: 'default', onreceived_url: 'http:/api.example.com/hook')

Subscribers

channel = Essential::Messaging::Channel.list.first

# create a subscriber
subscriber = channel.subscribers.create(phone_number: '2065551212')
puts subscriber.sid
# => sub_WfnIr-f-7FBMFr4nVKkMdg

# unsubscribe
subscriber.unsubscribe

# re-subscribe
subscriber = channel.subscribers.create(phone_number: '2065551212')
puts subscriber.sid
# => sub_WfnIr-f-7FBMFr4nVKkMdg

Messages

# This example magically finds the correct channel
# by either using an existing subscriber, or falling
# back on the channel named 'default'.
message = Essential::Messaging::Message.create(
  subscriber: '2065551212',
  body: 'magic channel'
)

# Here we specify a subscriber explicitly
message = Essential::Messaging::Message.create(
  subscriber: 'sub_pDTv7LSV-R-AzL7oEpBfoQ',
  body: 'subscriber by sid'
)

# Here we specify a channel
message = Essential::Messaging::Message.create(
  subscriber: '2065551212',
  channel: 'yradnoces',
  body: 'explicit channel'
)