README.md in kotsms2-1.0.1 vs README.md in kotsms2-1.1.0

- old
+ new

@@ -20,11 +20,11 @@ -------- 請在您的 Ruby 或 Rails 專案裡的 Gemfile 加入以下指令 ```ruby -gem 'kotsms2', '~> 1.0.0' +gem 'kotsms2', '~> 1.1.0' ``` 然後執行 bundle install 更新套件組 $ bundle @@ -41,13 +41,22 @@ 但要使用前,需要先[註冊簡訊王的會員][kotsms_signup],否則您的程式無法存取簡訊王的 API 管道 ```ruby require 'kotsms2' -# Kotsms2 是走 https 的方式進行系統操作 +# 程式將會以 SSL 的方式,走 https 連線到簡訊商的系統 +sms_client = Kotsms2::Client.new(username: '會員帳號', password: '會員密碼') +``` + +也可以加入 agent ( user-agent ) 跟 timeout ( 逾時時間/秒 ) 參數 至 client 物件 + +```ruby sms_client = Kotsms2::Client.new( - username: '會員帳號', password: '會員密碼', agent: "Mozilla/5.0 (可自訂 user-agent)" + username: '會員帳號', + password: '會員密碼', + agent: "Mozilla/5.0 ( Hello World )", + timeout: 10 ) ``` 使用範例 -------- @@ -129,19 +138,19 @@ {:access_success=>false, :message_id=>nil, :error=>"KOTSMS:-2"} ``` ---- -### 查詢簡訊餘額 +### 查詢目前帳號所持有的簡訊餘額 若你需要查詢您會員帳號的簡訊餘額,可以用以下指令處理 ```ruby sms_client.get_balance ``` -### 查詢簡訊餘額 的 回傳結果 +### 查詢目前帳號所持有的簡訊餘額 的 回傳結果 #### 得到簡訊餘額 當你執行完成後,get_balance 方法會回傳一組 hash 型態的結果 @@ -160,9 +169,78 @@ ```ruby {:access_success=>false, :message_quota=>0, :error=>"KOTSMS:-2"} ``` +### 查詢特定的簡訊發送狀態 + +若你需要查詢特定的簡訊發送狀態,您可以指定 message id 向簡訊商查詢該封簡訊最後是否已發送成功 + +```ruby +sms_client.get_message_status message_id: '在 send_message 得到的 message_id' +``` + +### 查詢特定的簡訊發送狀態 的 回傳結果 + +#### 得到發送狀況 + +當你執行完成後,get_message_status 方法會回傳一組 hash 型態的結果 + +只要 access_success 的值為 true 就一定代表系統有成功取得資料 + +is_delivered 代表是否已寄到用戶手機,true 為是、false 為有發生 delivered 以外的狀況 + +message_status 代表訊息狀態,可以知道是否已抵達 或是 發生通信上的錯誤 等等的相關資訊 + +```ruby +{:access_success=>true, :is_delivered=>true, :message_status=>"delivered", :error=>nil} +``` + +#### get_message_status 裡的 message_status 涵義 + +```ruby +'delivered' # 簡訊已抵達 +'expired' # 簡訊寄送超過有效時間 +'deleted' # 已被刪除 +'undelivered' # 無法送達 +'transmitting' # 傳輸中,正在接收 +'unknown' # 未知錯誤,可能無效 +'rejected' # 被拒絕 +'incorrect_sms_system_syntax' # 簡訊商編碼錯誤 +'status_undefined' # 核心 API 無法得知狀況 +``` + +#### 發生錯誤時 + +若 access_success 為 false 則表示過程有出現錯誤,同時 is_delivered 會為 false,message_status 會是 'status_undefined' + +```ruby +{:access_success=>false, :is_delivered=>false, :message_status=>nil, :error=>"KOTSMS:MEMBERERROR"} +{:access_success=>false, :is_delivered=>false, :message_status=>nil, :error=>"KOTSMS:NOSMS"} +``` + +---- + +例外狀況的處理 +-------- + +在某些情況下,程式會擲出一些例外給 ruby 去處理,你可以先用 Kotsms2 自帶的 Error 來先做 rescue + +```ruby + +begin + sms_client.account_is_available +rescue Kotsms2::ClientError + 'Client 物件有內部錯誤' +rescue Kotsms2::ServerError => error + "伺服器端有一些無法處理的狀況 #{error.message}" +rescue Kotsms2::ClientTimeoutError + "發生 Timeout 囉" +rescue Kotsms2::Error => error + "發生非預期的錯誤 #{error.message}" +end + +``` LICENSE -------- 本專案原始碼採 MIT LICENSE 授權 ( 詳見 LICENSE 檔案 )