57
56

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

twilio APIを使ってcurlやPHPでSMSを送信する

Posted at

世の中には便利なサービスがあるものですね。携帯電話の端末認証をしたくて、ユーザに電話番号を入力してもらい、SMSで認証キーを送信。その認証キーをユーザに入力してもらうことで、端末認証完了。みたいな。

twilioに登録

twilioにはトライアルがあり、twilioのAPI使い勝手を試すレベルであれば、色々できる。

ある程度、日本語化されているので迷うことはないと思うけど、普通にサインアップ。

トライアルでSMS送信するときの注意点

送信先電話番号は、検証済み電話番号じゃなきゃダメ

twilio_1.png

トライアルだと、1つの電話番号しか登録できないっぽい。なお、検証済み電話番号の検証方法で、通話方式とSMS方式があるが、なぜか通話方式は正常に完了できなかった。

SMS送信には、アメリカ(+1)の電話番号を取得する必要がある

twilio_2.png

ここに騙されやすい(誰も騙してない)。

サインアップして、最初に割り当てられる電話番号は、おそらく日本の国番号(+81)が付いたものだと思うけど、それをリリースして、アメリカの国番号(+1)の電話番号を再取得しなおす。

番号をリリースして、新しく電話番号を購入(トライアルなので実際は課金されない)

twilio_3.png

勝手にアサインされる電話番号は使わない

twilio_4.png

左上の国でアメリカを選択

twilio_5.png

(+1)がついていれば、電話番号は何でもいい

twilio_6.png

curlでSMS送信APIを叩く

curl / Ruby / PHP / Python / Node.js / Java / C# がサポートされている。テストするだけなら、ライブラリとか必要ないcurlが楽。

非常にわかりやすいサンプルが付いているので、迷うことはないが1点だけ注意が。 curlの下記サンプルコマンド、実はAPIのURLが間違っている。 なので、サンプルのまま実行しても、404 not foundのエラーが返ってくるだけ…。

# これは実行できない
curl -X POST 'https://jp.twilio.com/2010-04-01/Accounts/[ACCOUNT SID]/Messages.json' \
--data-urlencode 'To=+818000000000'  \
--data-urlencode 'From=+100000000'  \
--data-urlencode 'Body=test' \
-u [ACCOUNT SID]:[AuthToken]
jp.twilio.com
↓
api.twilio.com

こっちのホスト名が正しい。

# これが実行できる
curl -X POST 'https://api.twilio.com/2010-04-01/Accounts/[ACCOUNT SID]/Messages.json' \
--data-urlencode 'To=+818000000000'  \
--data-urlencode 'From=+100000000'  \
--data-urlencode 'Body=test' \
-u [ACCOUNT SID]:[AuthToken]

これで電話番号など設定があっていれば、検証済み電話番号にSMSが送信されているはず。

57
56
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
57
56

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?