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?

Chat with C# and ASP.NET MVC

Twilio IP メッセージングクライアントを使用して、チャットアプリケーションを実装する準備はできましたか?

このアプリケーションでは、ユーザーは Twilio IP メッセージング API を使用して、各種チャンネルを通じてメッセージを交換できます。この例では、この API 機能を使用してチャンネルとその使用状況を管理する方法を示します。

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 IP messaging client, you will need an access token. This token holds information about your Twilio Account and IP Messaging API keys.

新しい Token を作成し、これに IpMessagingGrant を提供することにより、このトークンを生成します。 Token がある場合は、そのメソッド ToJwt() を使用して、その文字列表現を返すことができます。

        
        
        
        
        TwilioChat.Web/Domain/TokenGenerator.cs

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

        TwilioChat.Web/Domain/TokenGenerator.cs

        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 to provide a valid token. Using the information provided as parameters:

        • device:使用しているデバイスを識別します。
        • identity:ユーザー自身を識別します。

        tokenGenerator.Generate メソッドを使用して新しいトークンを入手し、クライアントに対して使用される JSON フォーマットでトークンを返します。

              
              
              
              
              TwilioChat.Web/Controllers/TokenController.cs

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

              TwilioChat.Web/Controllers/TokenController.cs

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

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

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

              クライアントで、エンドポイントに対する POST リクエストを使用して新しいトークンを取得します。

              And with the token we can instantiate a new Twilio.AccessManager that is used to initialize our Twilio.IPMessaging.Client.

                    
                    
                    
                    
                    TwilioChat.Web/Scripts/twiliochat.js

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

                    TwilioChat.Web/Scripts/twiliochat.js

                    これでProgrammable Chatクライアントが初期化されました。 Channelの一覧の取得方法を見ていきましょう。

                    Channel一覧を取得する

                    Channel一覧を取得する

                    After initializing the client, we can now call it's method getChannels to retrieve all visible channels. The method returns a promise as a result that we use to show the list of channels retrieved on the UI.

                          
                          
                          
                          
                          TwilioChat.Web/Scripts/twiliochat.js

                          Channel一覧を取得する

                          TwilioChat.Web/Scripts/twiliochat.js

                          Next, we need a default channel.

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

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

                          このアプリケーションは、起動すると、「一般チャンネル」と呼ばれるチャンネルに参加しようとします。このチャンネルが存在しない場合は、その名前でチャンネルを 1 つ作成します。このサンプルアプリケーションの目的は、パブリックチャンネルだけでどのように機能するのかを明らかにすることですが、IP メッセージングクライアントを使用すると、プライベートチャンネルを作成して招待を処理することができます。

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

                                
                                
                                
                                
                                TwilioChat.Web/Scripts/twiliochat.js

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

                                TwilioChat.Web/Scripts/twiliochat.js

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

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

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

                                With access to the channel objects we can use them to listen to a series of events. In our case, we're setting listeners to the following events:

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

                                Here, we just register a different function to handle each particular event.

                                      
                                      
                                      
                                      
                                      TwilioChat.Web/Scripts/twiliochat.js

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

                                      TwilioChat.Web/Scripts/twiliochat.js

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

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

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

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

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

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

                                            TwilioChat.Web/Scripts/twiliochat.js

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

                                            チャンネルを作成する

                                            チャンネルを作成する

                                            To create a new channel, the user clicks on the "+ Channel" link. That we'll show an input text field where it's possible to type the name of the new channel. The only restriction here, is that the user can't create a channel called "General Channel". Other than that, creating a channel is as simple as calling createChannel with an object that has the friendlyName key. You can create a channel with more options though, see a list of the options here.

                                                  
                                                  
                                                  
                                                  
                                                  TwilioChat.Web/Scripts/twiliochat.js

                                                  チャンネルを作成する

                                                  TwilioChat.Web/Scripts/twiliochat.js

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

                                                  他のChannelに参加する

                                                  他のChannelに参加する

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

                                                        
                                                        
                                                        
                                                        
                                                        TwilioChat.Web/Scripts/twiliochat.js

                                                        他のChannelに参加する

                                                        TwilioChat.Web/Scripts/twiliochat.js

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

                                                        チャンネルを削除する

                                                        チャンネルを削除する

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

                                                              
                                                              
                                                              
                                                              
                                                              TwilioChat.Web/Scripts/twiliochat.js

                                                              チャンネルを削除する

                                                              TwilioChat.Web/Scripts/twiliochat.js

                                                              一丁あがり! ASP.NET MVC を使用して C# の簡単なチャットアプリケーションを実装できました。

                                                              次はどこでしょうか?

                                                              次はどこでしょうか?

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

                                                              SMS・MMS 通知

                                                              もう 1 つのサーバー停止状態も見逃さないでください。サーバー停止状態が発生した場合に SMS 経由ですべての管理者に警告するサーバー通知システムを構築する方法を学びます。

                                                              ワークフローの自動化

                                                              ビジネスに重要なワークフローを自動化することで、レスポンスレートを上げます。このチュートリアルでは、貸し別荘会社のスケール可能な状態の自動 SMS ワークフローを構築する方法を学びます。

                                                              匿名通話

                                                              音声通話およびSMSを使い匿名でユーザー同士を接続しプライバシーを保護します。使い捨ての電話番号をオンデマンドで用意し、2人のユーザーが電話番号など個人情報を交換しなくても通話できる方法を学びます。

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

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

                                                              Agustin Camino Jose Oliveros David Prothero Andres Jaan Tack Kat King Hector Ortega Andrei Birjukov Andrew Baker
                                                              Rate this page:

                                                              ヘルプが必要ですか?

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