Help us understand the problem. What is going on with this article?

TwilioでSMSを送信してみた

More than 5 years have passed since last update.

前提条件 / 制限

  • SMSを送信するにはTwilio電話番号が必要(要購入)
  • トライアルアカウントでは承認済みの電話番号にしかSMS送信できない

電話番号の取得

電話番号のページから 電話番号を購入 をクリックして購入ページヘ。

Twilio_User_-_Account_Phone_Numbers_Incoming.png

SMSを送信するには アメリカの電話番号 が必要です。

Twilio_User_-_Account_Phone_Numbers_Search.png

用途を選んで電話番号を検索。

Twilio_User_-_Account_Phone_Numbers_Search.png

電話番号とcapabilityが一覧表示されるので適当なものを購入。金額は$1〜$2くらい。何故かトライアルアカウントで、カードも登録していない状態で購入できます。不思議。

Twilio_User_-_Account_Phone_Numbers_Search_Buy_Results.png

SMS送信

電話番号を取得したらSMSを送信します。API Explorerでフォームをポチポチ埋めて、画面下部の リクエストを発行する をクリックすると送信されます。

Twilio_User_-_Account_Developer_Tools_API_Explorer_Message_Create.png

プログラム上で送信するには、SID, AuthTokenはアカウント設定ページから取得して、githubにあるサポートライブラリを使って送信します。クレデンシャルはこんなの。

Twilio_User_-_Account_Settings.png

API Explorerで提示されているサンプルコードをコピペして使用。

from twilio.rest import TwilioRestClient 

# put your own credentials here 
ACCOUNT_SID = "[SID]" 
AUTH_TOKEN = "[AuthToken]" 

client = TwilioRestClient(ACCOUNT_SID, AUTH_TOKEN) 

client.messages.create(
    to="12345678", 
    from_="87654321", 
    body="hello! it's a twilio!",  
)

成功時

リクエストが成功するとtwilio.rest.resources.messages.Messageが返ってくる。result.statusqueueとなるみたい。

失敗時

リクエスト失敗時はTwilioRestExceptionが送出される。エラーメッセージに詳細な理由がついているので便利。

TwilioRestException:
HTTP Error Your request was:

POST https://api.twilio.com/2010-04-01/Accounts/xxxxxxxxxxxxx/Messages.json

Twilio returned the following information:

Message body is required.

More information may be available here:

https://www.twilio.com/docs/errors/21602
key
Python + Djangoでウェブ・アプリケーション開発、SwiftでiOSアプリ開発をやってます。
http://blog.mitsukuni.org
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away