🐸

SMS受信サービスを使ってみたNEXT 〜海外番号編〜

2021/03/22に公開

序文

前エントリ=SMS受信サービスを使ってみた(使ってみてない) の続きです。

昨日の昼間に試したときはTwilio試した時に日本の番号だとSMS使えないのかー、で終わってしまったが次に試した Woxzon の方がもっとひどかった(使い勝手ではなく価格が…)ので結局何も試せてなかったんだがそれで終わるのはつまらない。

てことで「日本の番号」でSMS受信を処理したいって条件を妥協してとりあえず US(+1) の番号を取得してどんな感じに出来そうかは試しておくことにした。

Twilioを試してみた

元々 Twilio アカウント自体は持ってて主に電話の発着信の自動化に活用してたのでそのへんは省略(釣っても普通に登録するだけだけど)。

番号取得

まずはSMSが使える電話番号の取得。これはダッシュボード左の てメニューが電話番号の管理メニューなので、更にサブメニューの番号の購入に遷移すると、空いてる番号を検索、適当に選んで取得(購入)という流れになる。

昼間は Japan (+81) でSMSが選べない時点で退却してしまったが、今回は United States (+1)を選択する。するとSMSにチェックマークがつけれるようになる。

↓ 検索ポチー

で色々でてくる。アメリカの番号は維持費が 150円弱/月 て感じのようだ。まぁ遊びで使っても問題ないお手頃価格。ちなみに国内番号は110円で維持できるがSMSは使えない。
↓ 購入ポチーで確認画面

↓ 只の確認なのでサクサクとBuyをポチー

番号の受信設定(Webhook)

購入完了すると、そのままその番号の設定画面が開く。ここではWEBフックとかを設定すればよい。今回の目的はSMS受信なのでそれを探してスクロールしていくと一番下に Messaging てのがあって、これがSMS受信設定のようだ。

A MESSAGE COMES IN で Webhook を設定するわけだが、SMSを一度受信したら再送はしてもらえないから Webhook 先へのPOSTに障害があった場合に備えて、2つ目のハンドラが PRIMARY HANDLER FAILES で設定できるのは芸が細かくて良い。

ちなみに Webhook のセレクタを押すと以下のメッセージハンドラが選べるようになっている。

  • Webhook
  • TwiML Bin
  • Function
  • Studio Flow
  • Proxy Service

今回はとりあえずSMSを受信した際にどんな情報が取得できるか確認したいだけなので Webhook でどんなリクエストが来るかの確認をしてみたいと思います。ちなみに TwiML はXMLで処理フローを書く奴で、Function/StudioFlow は Twilio が提供してるサーバレス関数サービスやGUIツールとか、Proxy は Proxy。Function とかが一番面白そうだけど微課金はある、固定的なフローなら TwiML や Webhook で他に逃がす方が節約や安定度が良いかも。何にしろ失敗用に2ndハンドラ設定できるのは良いやね。Production利用なら別サービスで埋めたいとこだ。

さて、ちょい脇にそれたが Webhook。こんな時の確認に超便利な Webhook.site というサービスを使ってみてみる。これはサイトにアクセスすると即ユニークな Webhook 用のURLが発行され、発行されたURLにリクエストが来るたびにブラウザ上で良い感じにリクエストのダンプが見れるサービスです。今回はここで取得したURLを貼り付けてSAVE。

これで受信準備は終わりだ。Twilioのアカウント登録やメモ用にスクショ取ってる時間を除けば、ここまでで5分もかかってないと思う。

SMS受信の試験

早速、iPhone から取得した米国の番号宛にSMSを送信してみよう。
↓こんな感じのPOSTが来る。

発信元の番号や国、受信用の番号と国、あとTwilioのアカウントID、それに本文と、まぁ必要十分な情報が取れることが分かった。
あとユニコードの4バイト笑文字や改行文字もちゃんとそのまま受信できてる(Bodyの正確値は ソフトバンクから送信\n💩 でした)事も確認できた。

SMS認証必須サービスの登録に使えるか?

そもそもの本丸はここだったことを思い出したので、平日が始まる前に確認しとくか…。

Yahoo Japan → 使えない

初っ端の携帯番号の入力が正しい番号を入れろと言われて通らない。終了。

LINE → 使えない?

まずはLINEアプリを起動して新規登録を選択。
電話番号入力のところに国選択がある!これは期待できるか?
先程 Twilio で取得した国= United States と電話番号を入力してGO!

[ 不正な電話番号です|OK ]

はい解散〜。

一応事前にググった感じだと海外の番号でLINE使えるっぽいんだけど何が駄目だったんだろうか。実はLINEアプリの国内ストアと海外ストアでアプリそのものが違って電話番号のバリデーションが調整されてるとかあるのかな?なーぞ。

結論→ 海外番号SMSじゃ使いたいサービスは使えない

SMS受信は使えたけど、海外番号だと使いたい辺りのサービス登録には使えないって事が確認できた。
やっぱラズパイとか Arduino で、SMS受信サーバを作るのが手っ取り早い&コスパも良さそう!

いかがでしたか?参考になった方は 👇 ここを押してチャンネル登録してね!(そんなものはない)
バイナラ。

Discussion

Hidden comment