Twilioを利用する必要が出たので、ドキュメントを見ながらAPIなどを確認中
いろいろ機能はあるけど、まずは基本の部分を見てみる。
LINEボットなどと同様にTwilioのconsoleから着信時にHTTPのWebhookを設定できるので、サーバーにおいてもいいけど、ngrokが楽だよとドキュメントにもあるので、利用してみる。
ngrokにアカウント登録して、実行するとngrok.ioのサブドメインへのアクセスを実行してるローカルマシンの8000にフォワードしてくれる。
ngrok by @inconshreveable (Ctrl+C to quit) Session Status online Account droid (Plan: Free) Version 2.3.35 Region United States (us) Web Interface http://127.0.0.1:4040 Forwarding http://704be30b.ngrok.io -> http://localhost:8000 Forwarding https://704be30b.ngrok.io -> http://localhost:8000
なので、上記でいう「http://704be30b.ngrok.io」を公開URLとして、
Twilioのコンソールで
http://704be30b.ngrok.io/callback.php
を「Programmable Voice」の「受電したい番号」から「A CALL COMES IN」のWebhookURLを設定
?php // パラメータが見たいだけなので、TwilioSDKは今回不要 error_log(print_r($_REQUEST, true));
上記に加えて受信スクリプトを配置した場所で実行して、Twilioの番号に電話をかける
RC211v:app dp$ php -S localhost:8000
PHP 7.3.5 Development Server started at Fri Jan 24 12:53:18 2020
Listening on http://localhost:8000
Document root is /Users/dp/projects/twilio/app
Press Ctrl-C to quit.
[Fri Jan 24 12:54:13 2020] [::1]:62430 [200]: /callback.php
[Fri Jan 24 12:56:26 2020] Array
(
[Called] => +125647****Twilioで取得した受電番号
[ToState] => AL
[CallerCountry] => JP
[Direction] => inbound
[CallerState] =>
[ToZip] => 35739
[CallSid] => CA7f52ed3ec************************
[To] => +125647****Twilioで取得した受電番号
[CallerZip] =>
[ToCountry] => US
[ApiVersion] => 2010-04-01
[CalledZip] => 35739
[CalledCity] => ELKMONT
[CallStatus] => ringing
[From] => +81801234発信者番号
[AccountSid] => AC31a5******************************
[CalledCountry] => US
[CallerCity] =>
[Caller] => +81801234発信者番号
[FromCountry] => JP
[ToCity] => ELKMONT
[FromCity] =>
[CalledState] => AL
[FromZip] =>
[FromState] =>
)
カンファレンスなどでFromを判定したりするには、$_REQUESTのformなどを元にすればいいということか。
–>