PHPおよびLaravelを使用した予約リマインダー
This Laravel 5 web application shows how to create appointments for customers at a date in future, and send out reminders for those appointments in a background job that runs every few minutes.
このチュートリアルでは、このアプリケーションを実行するための主要なコードをいくつか紹介します。コードを実行する方法については、GitHub のプロジェクトの README をお読みください。
Yelpが飲食店に対してレストランの予約確認に、いかにしてSMSを使用しているのか見てみましょう。
さぁ、はじめましょう! 下のボタンをクリックして始めましょう。
Twilio を使うようにアプリケーションを設定する
Twilio APIを使用して備忘録のテキストメッセージを送信できるようにする前に、アカウントの資格情報を構成することが必要です。 これらはTwilio Consoleで見つかります。 また、SMS 用の電話番号も必要です。電話番号を探すか、またはここで新しいものを購入できます。
Laravel アプリケーションに最適な設定ライブラリーである Dotenv を使って、これらの値を設定します。このアプリケーションの設定方法については、プロジェクトの README をお読みください。
Next let's see how we create a new Appointment
.
新しいアポイントメントを作成する
アポイントメントリマインダーを送信するには、まずアポイントメントを作成する必要があります。コントローラーで、フォームに送信された情報(特に、お客様の名前と電話番号、さらに将来のアポイントメントの時間)を取り込み、Appointment
モデルに保存します。
Notice that we use the Carbon date library to make it easier for us to parse and do simple operations with the time.
これで予定(Appointment
)を作成できたので、こちらに対するリマインダーをスケジュールする方法を見ていきましょう。
リマインダーを送信するようジョブをスケジュールする
10 分ごとに、アポイントメントデータベースをチェックして、リマインダーの送信を必要とするアポイントメントが近く予定されていないかどうかを確認します。実行するジョブコードとその実行間隔の両方をここで設定します。
With our job configured, we're now ready to write the actual console command code that will send out our reminders.
ジョブを実行するためのコンソールコマンドを作成する
To actually execute our recurring job logic, we create an Artisan console command which queries the database for upcoming appointments and sends reminders as necessary. As an added bonus, defining our job logic in this way allows us to run the reminder job whenever we want from the command line.
Let's dig further into the ApplicationReminder class
リマインダーを必要とするアポイントメントを探す
反復ジョブは、AppointmentReminder
クラスのインスタンスを使って、次の 10 分間に近く予定されているアポイントメントがないかデータベースに問い合わせ、リマインダーメッセージを送信します。
Appointment
モデルでカスタムスコープを使い、コンストラクターでデータベースクエリーを実行します。これにより、日時が次の 10 分以内に入るすべてのアポイントメントのリストが返されます。
Now let's setup the Twilio REST Client in order to send some SMS reminder messages.
Twilio API クライアントをセットアップする
Also in the AppointmentReminder
constructor, we create a Twilio REST Client to send out reminders via SMS. We initialize it with the Twilio account credentials we configured earlier.
With the client and the reminders in hand. All that is left is to send an SMS for them.
Twilio API でリマインダーメッセージを送信する
この 2 つのプライベート関数は、リマインダーの送信が必要な近く予定されているアポイントメントごとに呼び出されます。最初の関数は、送信するメッセージのテキストをフォーマット化します。もう 1 つの関数は、Twilio REST API クライアントを使って、実際にテキストメッセージを送信します。
お客様の電話番号である to
パラメーター、アカウントの番号である from
パラメータ、メッセージのテキストが含まれる body
パラメーターを提供します。
一丁あがり! 近く予定されているアポイントメントのリマインダーを送信するために、Laravel アプリケーションをすべて設定しました。
関連トピック
このサンプルアプリケーションがお役に立つことを願っています。Twilio を使う PHP 開発者であれば、他のチュートリアルもお楽しみください。
ウェブページのボタンを押して、電話を介して訪問者をライブサポートまたはセールス担当者に接続します。
テキストメッセージを介した二要素認証を追加することで、Laravel に組み込まれているログイン機能のセキュリティを強化します。
これは役に立ちましたか?
Thanks for checking out this tutorial! If you have any feedback to share with us, please reach out on Twitter... we'd love to hear your thoughts, and know what you're building!
ヘルプが必要ですか?
誰しもが一度は考える「コーディングって難しい」。そんな時は、お問い合わせフォームから質問してください。 または、Stack Overflow でTwilioタグのついた情報から欲しいものを探してみましょう。