メニュー

Expand
ページを評価:

Chat with PHP and Laravel

We intend to sunset the Programmable Chat API on July 25, 2022 to focus on the next generation of chat: the Twilio Conversations API. Find out about the EOL process. We have also prepared this Migration Guide to assist in the transition from Chat to Conversations.

Ready to implement a chat application using Twilio Programmable Chat Client?

This application allows users to exchange messages through different channels, using the Twilio Programmable Chat API. On this example, we'll show how to use this API features to manage channels and to show it's usages.

Properatiは不動産の買い手と売り手をリアルタイムにつなぐ手助けをするモバイルメッセージングAppを構築しました。 さらに詳しく。

For your convenience, we consolidated the source code for this tutorial in a single GitHub repository. Feel free to clone it and tweak as required.

はじめましょう!

トークンの生成

In order to create a Twilio Programmable Chat client, you will need an access token. This token holds information about your Twilio Account and Programmable Chat API keys.

新しい AccessToken を作成し、これに ChatGrant を提供することにより、このトークンを生成します。新しい AccessToken オブジェクトは、Twilio クレデンシャルを使用して作成されます。

Laravel では、AccessToken オブジェクトをコントローラーにインジェクトするプロバイダーを作成する必要があります。TwilioChatGrantProvider.php 内部の ChatMessagingGrant についても同じです。これらのオブジェクトの使用方法については、次のステップで紹介します。

        
        
        
        app/Providers/TwilioAccessTokenProvider.php

        アクセストークンを生成する

        app/Providers/TwilioAccessTokenProvider.php

        We can generate a token, now we need a way for the chat app to get it.

        トークン生成コントローラー

        トークン生成コントローラー

        On our controller we expose the endpoint responsible for providing a valid token using this parameter:

        • identity: ユーザー自身を識別します

        AccessToken オブジェクトを使用してトークンを生成したら、AccessTokenのメソッド token.toJWT() を使用して文字列としてトークンを取得できます。 そうしたら、トークンをJSONエンコーディングされた文字列として返すだけです。

              
              
              
              app/Http/Controllers/TokenController.php

              トークン生成コントローラー

              app/Http/Controllers/TokenController.php

              Now that we have a route that generates JWT tokens on demand, let's use this route to initialize our Twilio Chat Client.

              Chatクライアントを初期化する

              Initializing the Programmable Chat Client

              クライアントはエンドポイントにPOSTリクエストを発行することで新しいトークンを取得します。

              With the token we can create a new Twilio.AccessManager, and initialize our Twilio.Chat.Client.

                    
                    
                    
                    public/js/twiliochat.js

                    Now that we've initialized our Chat Client, lets see how we can get a list of channels.

                    Channel一覧を取得する

                    チャンネルリストの取得

                    After initializing the client we can call the getPublicChannelDescriptors method to retrieve all visible channels. This method returns a promise which we use to show the list of channels retrieved on the UI.

                          
                          
                          
                          public/js/twiliochat.js

                          Channel一覧を取得する

                          public/js/twiliochat.js

                          Next, we need a default channel.

                          一般チャンネルに参加する

                          一般チャンネルに参加する

                          このアプリケーションは、起動時に「General Channel」という名前のChannelに参加しようとします。 このChannelが存在しない場合、その名前でChannelを作成します。 このチャンネルが存在しない場合は、その名前でチャンネルを 1 つ作成します。このサンプルアプリケーションでは、公開チャネルの挙動を紹介していますが、ChannelクライアントではプライベートChannelを作成して招待の処理を行ったりといったことも可能です。

                          ご注意: アプリケーションが起動するたびに新しい一般チャネルを作成したくないので、一般チャンネルには一意な名前を設定します。

                                
                                
                                
                                public/js/twiliochat.js

                                一般チャンネルに参加する

                                public/js/twiliochat.js

                                ここで、Channelイベントをいくつかリッスンしてみましょう。

                                チャンネルイベントをリスニングする

                                チャンネルイベントをリスニングする

                                続いて、Channelイベントをリッスンします。 今回の場合は、リスナーに下記のイベントを設定しています。

                                • messageAdded:接続しているチャンネルに他のメンバーがメッセージを送信する場合。
                                • typingStarted:接続しているチャンネルで他のメンバーがメッセージを入力している場合。
                                • typingEnded:接続しているチャンネルで他のメンバーがメッセージの入力を中止した場合。
                                • memberJoined:接続しているチャンネルに他のメンバーが参加する場合。
                                • memberLeft:接続しているチャンネルから他のメンバーが退出する場合。

                                個々のイベントを処理するためにそれぞれの関数を登録します。

                                      
                                      
                                      
                                      public/js/twiliochat.js

                                      クライアントも同様にイベントを生成します。 このイベントを同様にリッスンできるようにする方法を見ていきましょう。

                                      クライアントイベントをリスニングする

                                      クライアントイベントをリスニングする

                                      Just like with channels we can register handlers for events on the Client:

                                      • channelAdded:チャンネルがクライアントに表示されるようになった場合。
                                      • channelRemoved:チャンネルがクライアントに表示されなくなった場合。
                                      • tokenExpired:提供されたトークンの有効期限が切れた場合。
                                            
                                            
                                            
                                            public/js/twiliochat.js

                                            ここで実際のチャットアプリケーションが用意できましたが、複数Channelを使用してもっと面白いものを作ってみましょう。

                                            チャンネルを作成する

                                            チャンネルを作成する

                                            ユーザーが「+ Channel」リンクをクリックすると、新規のChannel名を入力できるテキストフィールドが表示されます。 Channelの作成は、friendlyNameキーを持つオブジェクトでcreateChannelを呼び出すだけで簡単に行えます。 Programmable ChatドキュメントのChannelセクションで一覧されている追加のオプションを伴ってChannelを作成できます。

                                                  
                                                  
                                                  
                                                  public/js/twiliochat.js

                                                  チャンネルを作成する

                                                  public/js/twiliochat.js

                                                  続いて、Channel間を切り替える方法を見ていきましょう。

                                                  他のChannelに参加する

                                                  他のChannelに参加する

                                                  サイドバーからチャンネルの名前をタップすると、そのチャンネルが selectedChannel として設定されます。selectChannel メソッドは選択したチャンネルへの参加および selectedChannel の設定を行います。

                                                        
                                                        
                                                        
                                                        public/js/twiliochat.js

                                                        他のChannelに参加する

                                                        public/js/twiliochat.js

                                                        いつか、ユーザーはChannelを削除したいと思うでしょう。 これを行う方法を見ていきましょう。

                                                        チャンネルを削除する

                                                        チャンネルを削除する

                                                        Channelの削除は、追加よりも簡単です。 アプリケーションは、"delete current channel"リンクによって、ユーザーにChannelを削除できるようにします。Twilioから実際にChannelを削除するのに必要なことは、削除しようとしているChannelのdeleteメソッドを呼ぶことだけです。 Channelオブジェクトの他のメソッドと同様、successハンドラーを設定できるプロミスを返します。

                                                              
                                                              
                                                              
                                                              public/js/twiliochat.js

                                                              チャンネルを削除する

                                                              public/js/twiliochat.js

                                                              That's it! We've just implemented a simple chat application for PHP using Laravel.

                                                              次はどこでしょうか?

                                                              次はどこでしょうか?

                                                              Twilio を使う PHP 開発者であれば、他のチュートリアルも調べてみてください。

                                                              Click-To-Call

                                                              ウェブページのボタンを押して、電話を介して訪問者をライブサポートまたはセールス担当者に接続します。

                                                              自動アンケート

                                                              音声通話または SMS テキストメッセージを介して調査を実施し、ユーザーから構造化データを迅速に収集します。

                                                              これは役に立ちましたか?

                                                              このチュートリアルをお読みいただき、ありがとうございます。ご意見やご感想などございましたら、ぜひお聞かせください。@twilio へツイートいただき、ご意見をお知らせください。

                                                              Mario Celi Jeff Linwood David Prothero Kat King Andrei Birjukov Andrew Baker Jose Oliveros Andres Jaan Tack Jeffrey Linwood
                                                              ページを評価:

                                                              ヘルプが必要ですか?

                                                              We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd by visiting Twilio's Community Forums or browsing the Twilio tag on Stack Overflow.

                                                                    
                                                                    
                                                                    

                                                                    フィードバックくださりありがとうございます!

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

                                                                    Sending your feedback...
                                                                    🎉 Thank you for your feedback!
                                                                    Something went wrong. Please try again.

                                                                    Thanks for your feedback!

                                                                    Refer us and get $10 in 3 simple steps!

                                                                    ステップ1

                                                                    Get link

                                                                    Get a free personal referral link here

                                                                    ステップ2:

                                                                    Give $10

                                                                    Your user signs up and upgrade using link

                                                                    ステップ3

                                                                    Get $10

                                                                    1,250 free SMSes
                                                                    OR 1,000 free voice mins
                                                                    OR 12,000 chats
                                                                    OR more