PHP
Laravel
twilio
SMS

TwilioとLaravel(PHP)を使って大量のSMSを送信する方法

原本

あなたが多数のユーザを持っていて、あなたがSMSを通してそれらを同時に更新するか、または通知する必要がある時があります。 たぶんあなたは会員制サイトや個人的なブログを運営しています。 どのような場合でも、このチュートリアルはあなたのWebアプリを使って大量のSMSを送信するための効率的で簡単な方法を提供します。


環境/対象


  • ターミナル(コマンドライン)

  • Composerインストール済み

  • PHPに精通している

  • Laravel(5+)に精通している

  • 既存のLaravelプロジェクトがある

  • Twilioアカウントを保持している


インストールとTwilio Laravel SDKの設定

最初にやるべきことはTwilio Laravel SDKをインストールすることです。TwilioLaravel SDKは、私たちの一括SMSアプリを起動するために必要な機能を提供します。 そのためにコマンドラインを使用します。 コマンドラインで次のように入力します:

$ composer require twilio/sdk

SDKがインストールされたので、Twilioアカウントを認識するように設定する必要があります。

.envファイルを開き、次のコードを貼り付けます。 必ず変数をTwilioの認証情報に置き換えてください。 TWILIO_FROMはあなたのTwilio番号です。

TWILIO_SID=ACXXXXXXXXXXXXXXXXXXX

TWILIO_TOKEN=XXXXXXXXXXXXXXXXXXXXX
TWILIO_FROM=+81XXXXXXXXXX


BulkSMS ControllerのViewとCodeを設定する

BulkSMSアプリには専用のControllerが必要です。Laravelのartisanコマンドを使用してControllerを作成します。

以下コマンドを貼り付けてControllerを作成します。

$ php artisan make:controller BulkSmsController

Controllerを開き、上部にTwilioクラスをincludeします。

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Twilio\Rest\Client;
use Validator;

次に、bulksms.blade.phpという名前のビューファイルを作成して、BulkSMSアプリケーションに必要なフィールドを作成するためのHTMLフォームを作成します。

$ touch resources/views/bulksms.blade.php

新しく作成されたresources/views/bulksms.blade.phpファイルを開き、以下のコードを貼り付けます:

<html>

<body>
<form action='' method='post'>
@csrf
@if($errors->any())
<ul>
@foreach($errors->all() as $error)
<li> {{ $error }} </li>
@endforeach
@endif

@if( session( 'success' ) )
{{ session( 'success' ) }}
@endif

<label>Phone numbers (seperate with a comma [,])</label>
<input type='text' name='numbers' />

<label>Message</label>
<textarea name='message'></textarea>

<button type='submit'>Send!</button>
</form>
</body>
</html>

routesフォルダにあるweb.phpを開き、一番下に次のコードを貼り付けます。

<?php

Route::view('/bulksms', 'bulksms');
Route::post('/bulksms', 'BulkSmsController@sendSms');

それでは、HTMLフォームを検証してテキストメッセージを送信するための関数を作成します。app/Http/ControllersフォルダーにあるBulkSmsController.phpファイルを開き、最後の中括弧の前に次のコードを入力します。

<?php

public function sendSms( Request $request )
{
// Your Account SID and Auth Token from twilio.com/console
$sid = env( 'TWILIO_SID' );
$token = env( 'TWILIO_TOKEN' );
$client = new Client( $sid, $token );

$validator = Validator::make($request->all(), [
'numbers' => 'required',
'message' => 'required'
]);

if ( $validator->passes() ) {

$numbers_in_arrays = explode( ',' , $request->input( 'numbers' ) );

$message = $request->input( 'message' );
$count = 0;

foreach( $numbers_in_arrays as $number )
{
$count++;

$client->messages->create(
$number,
[
'from' => env( 'TWILIO_FROM' ),
'body' => $message,
]
);
}

return back()->with( 'success', $count . " messages sent!" );

} else {
return back()->withErrors( $validator );
}
}


テスト

アプリをテストするには、プロジェクトディレクトリでコンソールを開き、次のコマンドを入力します。

$ php artisan serve

お好みのブラウザを使用してhttp://localhost:8000/bulksmsにアクセスし、フォームに記入して送信します。


Conclusion

これで、一括SMS送信アプリを設定したので、SMS機能の拡張がどれほど簡単かを確認できます。

これはあなたの電話番号をあなた自身のデータベースに保存させるという利点をあなたに与えます。