Level up your Twilio API skills in TwilioQuest, an educational game for Mac, Windows, and Linux. Download Now

メニュー

Expand
Rate this page:

Thanks for rating this page!

We are always striving to improve our documentation quality, and your feedback is valuable to us. How could this documentation serve you better?

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 をお読みください。

        
        
        
        
        .env.example

        Next let's see how we create a new Appointment.

        Let's create some appointments

        新しいアポイントメントを作成する

        アポイントメントリマインダーを送信するには、まずアポイントメントを作成する必要があります。コントローラーで、フォームに送信された情報(特に、お客様の名前と電話番号、さらに将来のアポイントメントの時間)を取り込み、Appointment モデルに保存します。

        Notice that we use the Carbon date library to make it easier for us to parse and do simple operations with the time.

              
              
              
              
              app/Http/Controllers/AppointmentController.php

              新しいアポイントメントを作成する

              app/Http/Controllers/AppointmentController.php

              これで予定(Appointment)を作成できたので、こちらに対するリマインダーをスケジュールする方法を見ていきましょう。

              リマインダーを送信するようジョブをスケジュールする

              リマインダーを送信するようジョブをスケジュールする

              10 分ごとに、アポイントメントデータベースをチェックして、リマインダーの送信を必要とするアポイントメントが近く予定されていないかどうかを確認します。実行するジョブコードとその実行間隔の両方をここで設定します。

                    
                    
                    
                    
                    app/Console/Kernel.php

                    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.

                          
                          
                          
                          
                          app/Console/Commands/SendReminders.php

                          Let's dig further into the ApplicationReminder class

                          リマインダーを必要とするアポイントメントを探す

                          リマインダーを必要とするアポイントメントを探す

                          反復ジョブは、AppointmentReminder クラスのインスタンスを使って、次の 10 分間に近く予定されているアポイントメントがないかデータベースに問い合わせ、リマインダーメッセージを送信します。

                          Appointment モデルでカスタムスコープを使い、コンストラクターでデータベースクエリーを実行します。これにより、日時が次の 10 分以内に入るすべてのアポイントメントのリストが返されます。

                                
                                
                                
                                
                                app/AppointmentReminders/AppointmentReminder.php

                                リマインダーを必要とするアポイントメントを探す

                                app/AppointmentReminders/AppointmentReminder.php

                                Now let's setup the Twilio REST Client in order to send some SMS reminder messages.

                                First, we need a Twilio API client

                                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.

                                      
                                      
                                      
                                      
                                      app/AppointmentReminders/AppointmentReminder.php

                                      Twilio API クライアントをセットアップする

                                      app/AppointmentReminders/AppointmentReminder.php

                                      With the client and the reminders in hand. All that is left is to send an SMS for them.

                                      Twilio API でリマインダーメッセージを送信する

                                      Twilio API でリマインダーメッセージを送信する

                                      この 2 つのプライベート関数は、リマインダーの送信が必要な近く予定されているアポイントメントごとに呼び出されます。最初の関数は、送信するメッセージのテキストをフォーマット化します。もう 1 つの関数は、Twilio REST API クライアントを使って、実際にテキストメッセージを送信します。

                                      お客様の電話番号である to パラメーター、アカウントの番号である from パラメータ、メッセージのテキストが含まれる body パラメーターを提供します。

                                            
                                            
                                            
                                            
                                            app/AppointmentReminders/AppointmentReminder.php

                                            Twilio API でリマインダーメッセージを送信する

                                            app/AppointmentReminders/AppointmentReminder.php

                                            一丁あがり! 近く予定されているアポイントメントのリマインダーを送信するために、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!

                                            Mario Celi Agustin Camino Andrew Baker Kevin Whinnery David Prothero Kat King
                                            Rate this page:

                                            ヘルプが必要ですか?

                                            誰しもが一度は考える「コーディングって難しい」。そんな時は、お問い合わせフォームから質問してください。 または、Stack Overflow でTwilioタグのついた情報から欲しいものを探してみましょう。