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?

Employee Directory with Ruby and Sinatra

このSinatraアプリケーションは従業員の連絡先情報を任意のSMSクライアントから使用できる従業員目録です。 このアプリケーションを構築するには、下記が必要になります:

  • 従業員のモデルを作成する
  • SMSを受信する
  • 従業員を名前で検索する
  • 送信MMS(日本未対応)に返信する
はじめましょう!

従業員モデルを作成する

まず必要になるのは従業員のデータベースです。 この目的にはDataMapperを使用します。 こうすれば、個々のデータベースの細部に立ち入ることなくデータベース構造を定義できます。

従業員のエンティティーは名前、メールアドレス、電話番号。そして顔写真の画像が収められた公開URLを含む連絡先情報を表すいくつかのフィールドを持っています、

        
        
        
        
        models/employee.rb

        Employee Model

        models/employee.rb

        さて、従業員を検索するロジックを構築しましょう。

        従業員を名前で検索する

        従業員を名前で検索する

        Searcher モジュールを使用すると、名前ごと、あるいは一意なデータベースの識別子ごとに従業員をデータベースで検索することができます。 

        パラメーターに従業員名を使用して検索を行うと、検索クエリーでの一致の見込まれる従業員名の一覧が返されます。 パラメーターに数値を渡した場合は、それをIDとして従業員を検索します。

              
              
              
              
              lib/searcher.rb

              Employee Search Service

              lib/searcher.rb

              ユーザーからの SMS に応答する際に、この検索機能を使用します。これについては、次で見ていきます。

              着信 SMS を受信する

              着信 SMS を受信する

              使用している電話番号で着信メッセージを受信すると、Twilio は HTTP POST リクエストをアプリケーションに送信します。これは、EmployeeControllerLookup アクションで処理されます。

              We check for numeric input (more on that later) or perform a lookup for the desired employee. The results are packaged up as a XML and sent back to Twilio and, in turn, the original sender of the SMS.

                    
                    
                    
                    
                    routes/employee.rb

                    着信 SMS を受信する

                    routes/employee.rb

                    レスポンスの構築について、もう少し詳しく見てみましょう。

                    従業員名の単一照合で応答します。

                    従業員名の単一照合で応答します。

                    Let's say the service finds a single employee matching the text message. In this case, we simply write out a response that contains the employee's contact information, including a photo, making our response a MMS message.

                          
                          
                          
                          
                          lib/message_creator.rb

                          Create TwiML response

                          lib/message_creator.rb

                          A single matching employee isn't the only scenario, however. Next, we will learn how to handle multiple employee matches.

                          一致する従業員がない、または複数の従業員が一致する場合はどうしますか?

                          一致する従業員がない、または複数の従業員が一致する場合はどうしますか?

                          従業員が見つからない場合は、「見つかりませんでした」というメッセージを返すだけです。

                          複数一致する場合はどうでしょうか? この場合は、一致する従業員名の一覧を、ユーザーが選択を行えるようIDを伴って返すことにします。 たとえば、"Peter"という検索を行った場合は、以下のような結果が返る可能性があります:

                          1-Peter Parker 2-Peter Quill
                          
                                
                                
                                
                                
                                lib/message_creator.rb

                                Get TwiML for Multiple Results

                                lib/message_creator.rb

                                Let's see how these options are stored next.

                                Return Employee's Contact Information by Number Choice

                                Return Employee's Contact Information by Number Choice

                                When searching for an employee, we check whether the body of the text input is a number. If that's the case, we use it to retrieve the employee by its ID. Otherwise, we use it to do a search by employee's name.

                                      
                                      
                                      
                                      
                                      lib/searcher.rb

                                      Employee Search Service

                                      lib/searcher.rb

                                      That's it! We've built a working Employee Directory.

                                      次はどこでしょうか?

                                      次はどこでしょうか?

                                      アプリケーションを自分で実行するために、GitHub のコードを見てみましょう。開発に慣れるための全ソリューションとインストラクションがこちらでご利用いただけます。

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

                                      RubyおよびSinatraを使用した自動アンケート

                                      RubyでSMSやMMS(日本未対応)を受信、返信する

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

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

                                      Agustin Camino Jose Oliveros David Prothero Kat King
                                      Rate this page:

                                      ヘルプが必要ですか?

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