sms 0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +45 -0
- data/lib/sms.rb +35 -0
- metadata +62 -0
data/README.md
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
# sms
|
2
|
+
|
3
|
+
Send text messages with [Twilio](http://www.twilio.com/). Easily.
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
gem install sms
|
8
|
+
|
9
|
+
Or put `gem 'sms'` in your `Gemfile`.
|
10
|
+
|
11
|
+
|
12
|
+
## Usage
|
13
|
+
|
14
|
+
Set the following ENV variables:
|
15
|
+
|
16
|
+
* `TWILIO_ID`: Your Twilio API id token.
|
17
|
+
* `TWILIO_SECRET`: Your Twilio API secret token.
|
18
|
+
* `TWILIO_PHONE`: One of your Twilio phone numbers.
|
19
|
+
|
20
|
+
Then, send some SMS messages:
|
21
|
+
|
22
|
+
SMS.text :message => "Hello!", :to => "15558675309"
|
23
|
+
|
24
|
+
Calling `SMS.text` returns true if the message was sent, or false if it wasn’t.
|
25
|
+
|
26
|
+
|
27
|
+
## Testing
|
28
|
+
To run the test suite, put a YAML file with the following keys at `~/.twilio`:
|
29
|
+
|
30
|
+
* `sid`: Your Twilio API ID token.
|
31
|
+
* `secret`: Your Twilio API secret token.
|
32
|
+
* `from`: Twilio phone number to send test message from.
|
33
|
+
* `to`: Phone number to send test message to.
|
34
|
+
|
35
|
+
This is a bit of a hack. Unfortunately, Twilio doesn’t offer testing credentials.
|
36
|
+
|
37
|
+
|
38
|
+
## Credits
|
39
|
+
* This is a heavily–modified fork of [sms-rb](https://github.com/nakajima/sms-rb).
|
40
|
+
|
41
|
+
|
42
|
+
## TODO
|
43
|
+
* Consolidate YAML/ENV/options – should be able to set all from any method.
|
44
|
+
* Support loading config directly from arbitrary YAML files.
|
45
|
+
|
data/lib/sms.rb
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'uri'
|
2
|
+
require 'net/https'
|
3
|
+
|
4
|
+
module SMS
|
5
|
+
attr_accessor :sid, :secret, :from
|
6
|
+
|
7
|
+
def self.text(options={})
|
8
|
+
@sid = ENV.delete('TWILIO_ID') if ENV.key?('TWILIO_ID')
|
9
|
+
@secret = ENV.delete('TWILIO_SECRET') if ENV.key?('TWILIO_SECRET')
|
10
|
+
@from = ENV.delete('TWILIO_PHONE') if ENV.key?('TWILIO_PHONE')
|
11
|
+
@from = options[:from] if options.key?(:from)
|
12
|
+
return false if @from.nil? or @from == ''
|
13
|
+
return false unless options.key?(:message)
|
14
|
+
return false unless options.key?(:to)
|
15
|
+
|
16
|
+
url = URI.parse "https://api.twilio.com/2010-04-01/Accounts/#{@sid}/SMS/Messages"
|
17
|
+
http = Net::HTTP.new(url.host, url.port)
|
18
|
+
http.use_ssl = true
|
19
|
+
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
20
|
+
|
21
|
+
request = Net::HTTP::Post.new(url.path)
|
22
|
+
request.basic_auth @sid, @secret
|
23
|
+
request.set_form_data({
|
24
|
+
'From' => @from,
|
25
|
+
'To' => options[:to],
|
26
|
+
'Body' => options[:message],
|
27
|
+
})
|
28
|
+
|
29
|
+
response = http.start do |http|
|
30
|
+
http.request(request)
|
31
|
+
end
|
32
|
+
response.code[0..0] == '2' # eg, 2xx
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
metadata
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: sms
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 1
|
8
|
+
version: "0.1"
|
9
|
+
platform: ruby
|
10
|
+
authors:
|
11
|
+
- Bill Williams
|
12
|
+
autorequire:
|
13
|
+
bindir: bin
|
14
|
+
cert_chain: []
|
15
|
+
|
16
|
+
date: 2011-08-03 00:00:00 -04:00
|
17
|
+
default_executable:
|
18
|
+
dependencies: []
|
19
|
+
|
20
|
+
description:
|
21
|
+
email: bill@flpatriot.com
|
22
|
+
executables: []
|
23
|
+
|
24
|
+
extensions: []
|
25
|
+
|
26
|
+
extra_rdoc_files: []
|
27
|
+
|
28
|
+
files:
|
29
|
+
- README.md
|
30
|
+
- lib/sms.rb
|
31
|
+
has_rdoc: true
|
32
|
+
homepage: https://github.com/flpatriot/sms
|
33
|
+
licenses: []
|
34
|
+
|
35
|
+
post_install_message:
|
36
|
+
rdoc_options: []
|
37
|
+
|
38
|
+
require_paths:
|
39
|
+
- lib
|
40
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
41
|
+
requirements:
|
42
|
+
- - ">="
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
segments:
|
45
|
+
- 0
|
46
|
+
version: "0"
|
47
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
48
|
+
requirements:
|
49
|
+
- - ">="
|
50
|
+
- !ruby/object:Gem::Version
|
51
|
+
segments:
|
52
|
+
- 0
|
53
|
+
version: "0"
|
54
|
+
requirements: []
|
55
|
+
|
56
|
+
rubyforge_project:
|
57
|
+
rubygems_version: 1.3.6
|
58
|
+
signing_key:
|
59
|
+
specification_version: 3
|
60
|
+
summary: Send SMS messages with Twilio.
|
61
|
+
test_files: []
|
62
|
+
|