twsms2 1.0.1 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4b893e819b7656c2b24fd33b833efececd769393
4
- data.tar.gz: 56bacae56fa1ff8a505b62ea2344202527867785
3
+ metadata.gz: 548eb03c93dd04ba44a85593a17e14a6d77c85da
4
+ data.tar.gz: 0eb4402e4e51a566c8476b88d84a43a9c5b40993
5
5
  SHA512:
6
- metadata.gz: 8653434d1c00ae920c56c129e8cbae100e8ee47219b0155e3f61d0451c6c987127876aca91be84ce321410fd3c7c10e55e23b392d7eb1b1c7df075a411992589
7
- data.tar.gz: c1aafdc3a1c88c29d3498fe58f9f38ca29a6ab2ae15d52761663ca79061f3ffac18ec112be377917997b781cea9ab86f6e3412384555dc69350a977bf606a6ec
6
+ metadata.gz: 38bd3975a7334dddb430b45269e3f6204ebfd4b6407fe669486b13927c467585342f125be252f41886dae0f06e036d0745d7acfedc03ca03d6a323b682583bd6
7
+ data.tar.gz: f9b5043d50a38004a9d8f8948202dc7054f0b0e8c12a8477d45fae48c94e954c09b1a2660c356a0e16250cac265db0da19939fd829be5327b5afcf9d12befb6c
data/.travis.yml CHANGED
@@ -1,5 +1,6 @@
1
1
  language: ruby
2
2
  rvm:
3
+ - 2.0
3
4
  - 2.1
4
5
  - 2.2
5
6
  - 2.3.1
data/README.md CHANGED
@@ -1,13 +1,18 @@
1
- Twsms2 ( 2016 台灣簡訊 TwSMS API 套件 )
2
- ======================================
1
+ Twsms2 ( 2016 新版 台灣簡訊 TwSMS API Ruby 版套件 )
2
+ =================================================
3
3
 
4
4
  [![Gem Version](https://badge.fury.io/rb/twsms2.svg)](https://badge.fury.io/rb/twsms2) [![Build Status](https://travis-ci.org/guanting112/twsms2.svg?branch=master)](https://travis-ci.org/guanting112/twsms2)
5
5
 
6
6
  ![twsms](http://i.imgur.com/KVuaBIm.png)
7
7
 
8
- 此為針對 [台灣簡訊][twsms_homepage] TwSMS API 開發的專屬套件,支援 Ruby ( >= 2.1 ) 或 Ruby On Rails
8
+ 此為針對 [台灣簡訊][twsms_homepage] TwSMS API 開發的專屬套件
9
9
 
10
- 您可以透過該套件來實作台灣簡訊的基本簡訊發送 與 簡訊餘額查詢 的程式
10
+ 您可以透過該套件來實作台灣簡訊的一般、預約簡訊發送 與 簡訊餘額查詢 的程式
11
+
12
+ 適用於
13
+ --------
14
+
15
+ Ruby 2 以上的版本,也可在 Ruby On Rails 專案引入
11
16
 
12
17
  安裝方式
13
18
  --------
@@ -15,7 +20,7 @@ Twsms2 ( 2016 台灣簡訊 TwSMS API 套件 )
15
20
  請在您的 Ruby 或 Rails 專案裡的 Gemfile 加入以下指令
16
21
 
17
22
  ```ruby
18
- gem 'twsms2', '~> 1.0.0'
23
+ gem 'twsms2', '~> 1.1.0'
19
24
  ```
20
25
 
21
26
  然後執行 bundle install 更新套件組
@@ -37,7 +42,7 @@ gem 'twsms2', '~> 1.0.0'
37
42
  require 'twsms2'
38
43
 
39
44
  # Twsms2 是走 https 的方式進行系統操作
40
- sms_client = Twsms2::Client.new(username: '台灣簡訊的會員帳號', password: '台灣簡訊的會員密碼')
45
+ sms_client = Twsms2::Client.new(username: '會員帳號', password: '會員密碼', agent: "Mozilla/5.0 (可自訂 user-agent)")
41
46
  ```
42
47
 
43
48
  使用範例
@@ -55,41 +60,69 @@ sms_client.account_is_available
55
60
 
56
61
  ### 發送簡訊
57
62
 
58
- 手機號碼可以為 8869XXYYYZZZ 或 09XXYYYZZZ 的格式 ( 以簡訊系統商建議的格式為主 )
63
+ #### 一般使用
59
64
 
60
- 一般方式
65
+ 手機號碼格式 0911222333 ( 台灣手機 )、886911222333 ( 國碼 + 手機號碼 )
66
+
67
+ 根據台灣簡訊說明,台灣門號每則扣 1 通,國際門號每則扣 3 通
61
68
 
62
69
  ```ruby
63
- sms_client.send_message to: '手機號碼', content: "簡訊內容 #{Time.now}"
70
+ sms_client.send_message to: '手機號碼', content: "簡訊內容.."
64
71
  ```
65
72
 
66
- 你可以加入 popup 參數告訴簡訊系統,發送簡訊到收訊人的手機時要直接顯示 ( 但不會儲存在手機 )
73
+ #### 預約發送
74
+
75
+ 若要使用預約發送,可以指定 at 參數給 send_message 方法
76
+
77
+ 同時程式會自動轉換時區 至 台灣簡訊 適用的時區 ( +08:00 )
67
78
 
68
79
  ```ruby
69
- sms_client.send_message to: '手機號碼', content: "簡訊內容 #{Time.now}", popup: true
80
+ # Ruby 請用加秒數的方式
81
+ sms_client.send_message to: '手機號碼', content: "預約簡訊測試: #{Time.now}", at: Time.now + 120
82
+
83
+ # 在 Ruby On Rails 專案則可以用 Rails 專用的方法
84
+ sms_client.send_message to: '手機號碼', content: "預約簡訊測試: #{Time.now}", at: Time.now + 2.days
70
85
  ```
71
86
 
72
- 本套件發送簡訊時,預設為長簡訊發送,因此若超 SMS 短信字元長度,將會以第二封起開始計算
87
+ #### 強制直接顯示簡訊內容
73
88
 
74
- 當然您可以關閉該設計,請加入 long 參數,並指定為 false 即可
89
+ 可以加入 popup 參數,讓簡訊在收訊人的手機裝置直接顯示在上面 ( 可能不會被手機儲存 )
75
90
 
76
91
  ```ruby
77
- sms_client.send_message to: '手機號碼', content: "簡訊內容 #{Time.now}", long: false
92
+ sms_client.send_message to: '手機號碼', content: "簡訊內容..", popup: true
78
93
  ```
79
94
 
80
- ----
95
+ #### 關閉長簡訊支援
96
+
97
+ 一般發送簡訊時,預設為長簡訊發送
98
+
99
+ 因此,若超 SMS 短信字元長度,將會以第二封起開始計算
100
+
101
+ 加入 long 參數,若指定為 false 則不會使用長簡訊格式
102
+
103
+ ```ruby
104
+ sms_client.send_message to: '手機號碼', content: "簡訊內容..", long: false
105
+ ```
81
106
 
82
107
  ### 發送簡訊 的 回傳結果
83
108
 
109
+ #### 發送成功
110
+
84
111
  當你執行完成後,send_message 方法會回傳一組 hash 型態的結果
85
112
 
86
- 只要 access_success 的值為 true 就一定代表發送成功,若為 false 則表示過程有出現錯誤
113
+ 只要 access_success 的值為 true 就一定代表發送成功
114
+
115
+ 系統會另外回傳一組 message_id 用來讓你追蹤簡訊
87
116
 
88
117
  ```ruby
89
118
  {:access_success=>true, :message_id=>"217620029", :error=>nil}
90
119
  ```
91
120
 
92
- 例如:以下為帳號密碼的錯誤,error 將會記錄台灣簡訊的 error code
121
+ #### 發生錯誤時
122
+
123
+ 若 access_success 為 false 則表示過程有出現錯誤
124
+
125
+ 以下範例為帳號密碼的錯誤,error 參數則是台灣簡訊的 error code
93
126
 
94
127
  error code 的部分,請以 台灣簡訊 API 文件的定義為主,本套件不處理相關結果
95
128
 
@@ -107,10 +140,10 @@ error code 的部分,請以 台灣簡訊 API 文件的定義為主,本套件
107
140
  sms_client.get_balance
108
141
  ```
109
142
 
110
- ----
111
-
112
143
  ### 查詢簡訊餘額 的 回傳結果
113
144
 
145
+ #### 得到簡訊餘額
146
+
114
147
  當你執行完成後,get_balance 方法會回傳一組 hash 型態的結果
115
148
 
116
149
  只要 access_success 的值為 true 就一定代表系統有成功取得資料
@@ -122,6 +155,8 @@ message_quota 則是簡訊餘額,代表你還剩幾封可以用,若為 0 就
122
155
  {:access_success=>true, :message_quota=>77, :error=>nil}
123
156
  ```
124
157
 
158
+ #### 發生錯誤
159
+
125
160
  若 access_success 為 false 則表示過程有出現錯誤,同時 message_quota 會為 0
126
161
 
127
162
  ```ruby
@@ -5,6 +5,18 @@ module Twsms2
5
5
  match_data.nil? ? nil : match_data[1]
6
6
  end
7
7
 
8
+ def format_time_string(time)
9
+ return nil if time.nil?
10
+ new_time = to_asia_taipei_timezone(time)
11
+ new_time.strftime('%Y%m%d%H%M')
12
+ end
13
+
14
+ def to_asia_taipei_timezone(time)
15
+ utc_time = time.utc? ? time.dup : time.dup.utc
16
+ asia_taipei_time = utc_time.getlocal('+08:00')
17
+ asia_taipei_time
18
+ end
19
+
8
20
  def format_send_message_info(original_info)
9
21
  new_info = {
10
22
  access_success: false,
@@ -1,3 +1,3 @@
1
1
  module Twsms2
2
- VERSION = "1.0.1"
2
+ VERSION = "1.1.0"
3
3
  end
data/lib/twsms2.rb CHANGED
@@ -9,7 +9,7 @@ module Twsms2
9
9
  include Twsms2::Formatter
10
10
 
11
11
  def initialize(options={})
12
- @user_agent = "twsms2/#{VERSION}"
12
+ @user_agent = options.fetch(:agent) { "twsms2/#{VERSION}" }
13
13
  @api_host = options.fetch(:host) { 'api.twsms.com' }
14
14
  @username = options.fetch(:username) { ENV.fetch('TWSMS_USERNAME') }
15
15
  @password = options.fetch(:password) { ENV.fetch('TWSMS_PASSWORD') }
@@ -24,10 +24,11 @@ module Twsms2
24
24
  def send_message(options={})
25
25
  options[:to] ||= nil
26
26
  options[:content] ||= nil
27
+ options[:at] = format_time_string(options[:at])
27
28
  options[:long] = options[:long] || options[:long].nil? ? :Y : :N
28
29
  options[:popup] = options[:popup] ? :Y : :N
29
30
 
30
- response = get(@api_host, '/smsSend.php', popup: options[:popup], mo: :N, longsms: options[:long], mobile: options[:to], message: options[:content], drurl: '')
31
+ response = get(@api_host, '/smsSend.php', popup: options[:popup], mo: :N, longsms: options[:long], mobile: options[:to], message: options[:content], drurl: '', sendtime: options[:at])
31
32
 
32
33
  format_send_message_info(response)
33
34
  end
data/twsms2.gemspec CHANGED
@@ -10,9 +10,10 @@ Gem::Specification.new do |spec|
10
10
  spec.email = ["cgt886@gmail.com"]
11
11
  spec.license = "MIT"
12
12
  spec.platform = Gem::Platform::RUBY
13
- spec.summary = %q{2016 台灣簡訊 TwSMS API ( for ruby / rails )}
14
- spec.description = %q{2016 台灣簡訊 TwSMS API ( for ruby / rails )}
13
+ spec.summary = %q{2016 新版 台灣簡訊 TwSMS API ( Ruby / Rails 專案適用 )}
14
+ spec.description = %q{2016 新版 台灣簡訊 TwSMS API ( Ruby / Rails 專案適用 )}
15
15
  spec.homepage = "https://github.com/guanting112/twsms2"
16
+ spec.required_ruby_version = '~> 2'
16
17
 
17
18
  # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
18
19
  # to allow pushing to a single host or delete this section to allow pushing to any host.
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: twsms2
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Guanting Chen
@@ -52,7 +52,7 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '5.0'
55
- description: 2016 台灣簡訊 TwSMS API ( for ruby / rails )
55
+ description: 2016 新版 台灣簡訊 TwSMS API ( Ruby / Rails 專案適用 )
56
56
  email:
57
57
  - cgt886@gmail.com
58
58
  executables: []
@@ -84,9 +84,9 @@ require_paths:
84
84
  - lib
85
85
  required_ruby_version: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
89
+ version: '2'
90
90
  required_rubygems_version: !ruby/object:Gem::Requirement
91
91
  requirements:
92
92
  - - ">="
@@ -94,8 +94,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
94
94
  version: '0'
95
95
  requirements: []
96
96
  rubyforge_project:
97
- rubygems_version: 2.5.1
97
+ rubygems_version: 2.6.4
98
98
  signing_key:
99
99
  specification_version: 4
100
- summary: 2016 台灣簡訊 TwSMS API ( for ruby / rails )
100
+ summary: 2016 新版 台灣簡訊 TwSMS API ( Ruby / Rails 專案適用 )
101
101
  test_files: []