Laravel x TwilioでSMSを送信する
LaravelからTwilioを通して、SMSを送信する処理の実装を残しておきます。
対象者として、Laravelを利用したことがある方です。
- ※Twilioでの日本のSMS送信は1本
0.084$≒12円くらいかかるので、注意してください。(記載当時)
手順
1. Twilioの準備
アカウントは各自作成してください。※トライアルアカウントは2000円くらいの無料枠あるので、便利です。
ログイン後、ダッシュボードにあるAccount SIDとAuth Token、Twilio Phone Numberを取得し、.envにて保持してください。
- ※
Twilio Phone Numberは、Twilioのコンソールから電話番号を取得する必要があります。※USだと160円くらいで買えました。
TWILIO_ACCOUNT_SID=your_account_sid
TWILIO_AUTH_TOKEN=your_auth_token
TWILIO_FROM=your_twilio_phone_number
2. Twilio SDKのインストール
下記コマンドを実行し、TwilioのSDKをインストールします
- 現在(記載当時)は
^8.7が最新のようです。
composer require twilio/sdk
3. コマンドの作成
下記コマンドにて、Laravelのコマンドを作成します。
php artisan make:command TwilioSMS
処理のほうは短く記載しておきます。
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Twilio\Rest\Client;
class TwilioSMS extends Command
{
protected $signature = 'twilio:sms {to} {message}';
protected $description = 'Send an SMS via Twilio';
public function handle()
{
// memo: Trialプランの場合、「from」は変えられない。また、「Sent from your Twilio tutorial account」が一緒に送られる。
// もし仕事として実装する方は、configをきれいに作成してください。
$sid = config('services.twilio.sid', env('TWILIO_SID'));
$token = config('services.twilio.token', env('TWILIO_TOKEN'));
$from = config('services.twilio.from', env('TWILIO_FROM'));
$to = $this->argument('to');
$message = $this->argument('message');
try {
$twilio = new Client($sid, $token);
$twilio->messages->create($to, [
'from' => $from,
'body' => $message
]);
$this->info("SMS送信に成功しました: {$to}");
} catch (\Exception $e) {
$this->error("SMS送信に失敗しました: " . $e->getMessage());
}
}
}
4. コマンドの実行
実際コマンドのほうを投げて実際届くのか確認してみてください。
※注意トライアルアカウントの場合、認証された電話番号にしか送信できません。
※注意SMSの内容に「Sent from your Twilio tutorial account」という文言が追加されます。
php artisan twilio:sms +819012345678 "Hello from Laravel!"
Sent from your Twilio tutorial account
- Hello from Laravel!
というメッセージが届くと思われます。
まとめ
上記内容にて、LaravelからTwilioを利用してSMSを送信する方法を解説しました。
今後利用することがある方がいたら、参考にしていただければと思います。
ヒサビサニ、プログノコウシンシタ。。。
