A simple wrapper gem for the smslane.com HTTP API for sending Bulk SMS in India.
Add this line to your application's Gemfile:
gem 'smslane'
And then execute:
$ bundle
Or install it yourself as:
$ gem install smslane
Create an instance of Smslane::Client
and pass your smslane.com username
and password
as arguments like below:
client = Smslane::Client.new('username','password')
Now using this client you can check your credit balance, send SMS and check delivery reports.
To check your balance credits simple call the check_balance
method on the client:
client.check_balance
# => {:result => 'Success', :response => '2000'}
# or
# => {:result => 'Failure', :response => 'Invalid Login'}
# or
# => {:result => 'Failure', :response => 'Unauthorized Access'}
# etc
SMS is sent using the client through the send_sms
method. This method requires three arguments:
- An array of recipient numbers
- The message to be sent
- A boolean indicating whether or not to send the SMS as a flash message
Numbers must be of the format 919841254836
.Prefixing with 91
is crucial. But there are mechanisms in the gem that will take care of some malformed numbers.
Recipient numbers are split into groups of 90 numbers and are sent seprately to comply with smslane.com's limits. Malformed numbers will cause the entire group in which they are to fail. So it is crucial that numbers are of the specified format.
The response of this call is an array of hashes. Each hash contains the recipient number and the message_id
returned by smslane.com. This message_id
is used to check delivery reports.
client.send_sms ['919234567888','919999999999'], 'Testing :)', false
#=> [{:number => '919234567888', :message_id => '677a468d46f342e66e69ddbe5a963d7d'},
{:number => '919999999999', :message_id => '4c52312229df5fbc82cd07ea29ca4d91'}]
If a number is not present in this response list it indicates that the number is invalid.
To Do.
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request