最も簡単なTwilioの使い方
最も簡単なTwilioの使い方
Twilioとは?
下記を参照。
何ができるの?
この記事では「WindowsのPowerShellからTwilioのWebAPIを使ってSMSを送信する」のみ。
正直Twilioの機能の1%も使っていないけれど、これだけでも便利。
用途は?
- 最低限の通知を最小限の労力で実現したい。
- メールでは確認が遅れる or 埋もれる場合にSMSで通知したい。
- 自身の電話番号を隠しつつSMSで連絡したい(※送信のみの一方通行)。
等々。
実装は?
下記だけでSMSを通知可能(※Twilioのサンプルを丸パクリに近い形で参考にしている)。
実際の運用ではログ監視処理を別途動かして、エラーログを吐いていたらこのスクリプトを呼ぶ。
Send-Sms-FromTwilio.ps1
<# .SYNOPSIS Twilio REST APIを利用してSMSでメッセージを通知します。 <CommonParameters> はサポートしていません。 .DESCRIPTION パラメータで受け取った宛先へSMSメッセージを通知します。 単純に通知するのみで、エラー制御や複数回通知の防止等は一切実施しません。 事前にTwilioアカウント情報を環境変数へ設定しておく必要があります。 Twilioコンソールで情報を確認のうえ、 TWILIO_ACCOUNT_SID に アカウントSID を TWILIO_AUTH_TOKEN に AuthToken を TWILIO_PHONE_NUMBER に Twilio電話番号 を それぞれ設定してください。 .EXAMPLE ./Send-Sms-FromTwilio.ps1 "+81XXXXXXXXXX" "○○エラー発生!! 至急対応してください!!" .PARAMETER ToNumber 宛先電話番号(E.164形式) .PARAMETER Msg 通知メッセージ本文 .LINK https://twilio.kddi.web.com/ #> # Twilioアカウント情報設定 $sid = $env:TWILIO_ACCOUNT_SID $token = $env:TWILIO_AUTH_TOKEN $from_number = $env:TWILIO_PHONE_NUMBER # Twilio REST APIのURI $uri = "https://api.twilio.com/2010-04-01/Accounts/$sid/Messages.json" # 通知先電話番号 $to_number = $Args[0] # 認証情報設定 $pass = $token | ConvertTo-SecureString -AsPlainText -Force $credential = New-Object System.Management.Automation.PSCredential($sid, $pass) # 通知 $params = @{To = $to_number; From = $from_number; Body = $Args[1]} Invoke-WebRequest $uri -Method Post -Credential $credential -Body $params -UseBasicParsing | ConvertFrom-Json | Select-Object sid, body
注意点は?
- SMS通知1回につき数円かかる。何回も通知するようなケースにはそぐわない。1ヶ月に1回程度とか、そもそもエラーは起きない想定だが念のためとか、といったケースが合う。
- 日本国内へSMS通知するためには、Twilioの電話番号はUSの番号が必要。
- 送信先となる携帯電話側で国際SMSを拒否していると届かない。