あなたが多数のユーザを持っていて、あなたが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機能の拡張がどれほど簡単かを確認できます。
これはあなたの電話番号をあなた自身のデータベースに保存させるという利点をあなたに与えます。