Send SMS

現在是個手機門號比人頭還多的年代. 簡訊幾乎是每個人都有"能力"收的一個媒介. 如果service有狀況, 用簡訊通知是最有效的!


之前在survey transcribe service時, 找到了一個叫 twilio 的網站. 它提供的服務可多了, 可以用程式打電話給使用者(1), 然後再唸一段文字給使用者聽(2), 可以錄下使用者的回話(3), 還可以把使用者的回話轉譯成文字(4). 手機的部份則可以送簡訊(5), 還可以收使用者送來的簡訊(6)當做request, 再另外做對應的事. 可以很簡單地把程式跟電話整合在一起. 價錢看起來不太貴(打電話一分鐘2 cents, 接電話一分鐘1 cent, 每送一個SMS 1cent). 我倒也沒比較過類似服務收費就是了...

註冊的方式很簡單, 只要在它的首頁上點Try Twilio Free, 填上基本資料就可以使用他們的API了, 還有附送30 USD的credit可供試用. 之後它還會試著吸引你upgrade成正式用戶, 比如說再另外送25 USD的credit. 主要是要吸引你提供信用卡資料就是了...

之前帳號申請就放在那裡, 忘了! 今天剛好有一個場合可以試這個API. 主要是用crontab持續的去偵測目前server的狀況. 如果有需要注意的時候, 它會即時送SMS將當時的狀況送給能夠處理的人, 免得問題擴大.

它有提供各種不同語言的API, 最近都在用python, 所以就用它的python來達成目的. 真是無敵簡單的.

1. 安裝
在ubuntu上只要打sudo apt-get install pip, sudo pip install twilio, 基本上就將必需的python package裝好了.

2. 使用
在coding之前, 有兩個資訊是需要知道的, account id與token. 這兩個值可以在login後的dashboard上看到.
用了它,  twilio 才知道要跟誰收錢.
可以把這兩個值直接寫在程式碼裡, 或者是存成TWILIO_ACCOUND_SID與TWILIO_AUTH_TOKEN這兩個環境變數. 官方文件是建議存成環境變數, 這樣就不用擔心程式碼放到source control server上, 會把這兩個值洩漏出去.

有了這兩個值之後, 就可以送簡訊了. 程式碼如下.

from twilio.rest import TwilioRestClient

client = TwilioResetClient()

message = client.sms.messages.create(to="+12345556789", from_="4155992671", body="content")

上面三行, 就會把content這幾個字送到+12345556789這個號碼上. 因為是免錢的試用帳號, 它至少有兩個限制. 第一, 目的號碼必需先verify過. 第二, 來源號碼必需是 twilio 的sandbox號碼, 也就是上面寫的4155992671. 付費的就沒這麼麻煩了. 不過我現在也只是小量試用著玩兒, 沒那麼多顧慮.

3. 統計
既然是計費服務, 那統計資料肯定是要詳細的. twilio 它也有提供一些圖表顯示使用的數量及頻率等等.


之後只要那個service出事, 15分鐘內就會通知, 馬上就可以處理. 心安得多呀...

留言

這個網誌中的熱門文章

買車記

怎麼在兩台linux server間用scp而不需打密碼?

Costco退貨真爽快