メニュー

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?

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

In this guide, we'll show you how to use Programmable SMS to respond to incoming SMS messages in your ASP.NET web application. When someone sends a text message to your Twilio number, Twillio can call a webhook you create in ASP.NET MVC from which you can send a reply back using TwiML. All this talk of webhooks and TwiML got you feeling anxious? Fear not. This guide will help you master the basics in no time.

Twilio can send your web application an HTTP request when certain events happen, such as an incoming text message to one of your Twilio phone numbers. These requests are called webhooks, or status callbacks. For more, check out our guide to Getting Started with Twilio Webhooks. Find other webhook pages, such as a security guide and an FAQ in the Webhooks section of the docs.

The code snippets in this guide are written using modern C# language features and require the .NET Framework version 4.5 or higher. They also make use of the Twilio C# SDK and Twilio.AspNet.Mvc helper library. If you need help creating a new ASP.NET MVC project, check out our mini-guide on the topic.

準備はOK? さぁ、はじめましょう!

受信SMSのダイアグラム

Webhookとは何か

Webhooks are user-defined HTTP callbacks. They are usually triggered by some event, such as receiving an SMS message or an incoming phone call. When that event occurs, Twilio makes an HTTP request (usually a POST or a GET) to the URL configured for the webhook.

To handle a webhook, you only need to build a small web application that can accept the HTTP requests. Almost all server-side programming languages offer some framework for you to do this. Examples across languages include ASP.NET MVC for C#, Servlets and Spark for Java, Express for Node.js, Django and Flask for Python, and Rails and Sinatra for Ruby. PHP has its own web app framework built in, although frameworks like Laravel, Symfony and Yii are also popular.

どのフレームワークや言語を選んだにせよ、WebhookはあらゆるTwilioアプリケーションに対して同様に機能します。 これらはTwilioに与えられたURIに対するリクエストを生成します。 アプリケーションはデータベースの読み書き、他のAPIとの統合、あるいは何らかの演算など、必要とされるあらゆる処理を実行し、それからTwilioに実行してほしい指示をTwiMLのレスポンスとしてTwilioに応答します。

TwiMLとは何か

TwiML is the Twilio Markup Language, which is just to say that it's an XML document with special tags defined by Twilio to help you build your SMS and voice applications. TwiML is easier shown than explained. Here's some TwiML you might use to respond to an incoming phone call:

<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Say>Thanks for calling!</Say>
</Response>

And here's some TwiML you might use to respond to an incoming SMS message:

<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Message>We got your message, thank you!</Message>
</Response>

すべてのTwiMLドキュメントはルートの<Response>要素と、その中に含まれるひとつ以上の動詞からなります。 動詞とは、電話をかけてきた人にあいさつする<Say>や、受信メッセージへの返信としてSMSを送信する<Message>といったような、Twilioにおこなってほしいアクションのことです。 TwiMLで実行できることがあまねく網羅されたリファレンスについては、TwiML APIリファレンスを参照してください。

WebアプリケーションでTwiMLを生成する

誰かがTwilio番号に対してSMSを送信したとき、設定済みのWebhook、そしてTwiMLを使って返信することができます。以下は、ヘルパーライブラリーを使ってTwiMLを生成する方法になります。

        
        
        
        
        When your Twilio phone number receives an incoming message, Twilio will send an HTTP request to your server. This code shows how your server can reply with a text message using the Twilio helper library.

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

        When your Twilio phone number receives an incoming message, Twilio will send an HTTP request to your server. This code shows how your server can reply with a text message using the Twilio helper library.

        ヘルパーライブラリーの使用時は、ご自身での生のXMLの生成について気にかける必要はありません。 もちろん、そちらの方法がお好みなら、それは一向に差し支えありません。

        コードの準備ができたら、今度はそれをTwilioに渡すためのURLが必要になります。 Twilioはインターネット上の公開サーバーにのみアクセス可能です。 つまり、開発したアプリケーションをWeb上に公開する必要があり、それには(数ある)クラウドホスティング業者を利用するか、お手持ちのサーバーにご自身でホストするか、あるいはngrokのようなサービスを使ってローカルの開発用マシンをインターネット上に露出させるということも可能です。 弊社では一般的に後者の方法はプロダクション環境へのデプロイではなく、開発やテスト目的のみにおすすめします。

        WebhookのURLを設定する

        これで、Webアプリケーションで実行時に生成されるTwiML応答のためのURLの準備も整ったので、新しいSMSメッセージが着信し次第Webhookが呼び出されるようにTwilio電話番号を設定できます。

        1. jp.twilio.comにログインし、コンソール上の電話番号ページに移動します
        2. 変更したい電話番号をクリックします
        3. メッセージセクションの "A MESSAGE COMES IN" オプションを見つけます
        4. "Webhook" を選択し、使用したいURLをペーストします:

        SMS Webhook

        HTTP POSTまたはHTTP GETの選択が、開発中のWebアプリケーションが想定するメソッドに合致していルカ確認してください。 通常は、デフォルト値であるPOSTで問題ないでしょう。

        予備のWebhook URL

        コンソールには、「メインのハンドラーが失敗した (PRIMARY HANDLER FAILS) 」ときのためのWebhook URLの入力欄もあることに気づかれるでしょう。 Twilioは、メインのハンドラーがエラーを返したり、15秒以内に応答しなかった場合にこのURLを呼び出します。 詳細については、利用可能性と信頼性ガイドを参照してください。

        Protect your webhooks

        Twilio supports HTTP Basic and Digest Authentication. Authentication allows you to password protect your TwiML URLs on your web server so that only you and Twilio can access them.

        Learn more about HTTP authentication here, and check out our full guide to securing your C#/ASP.NET application by validating incoming Twilio requests.

        メディア付きの応答を返す (MMSメッセージ - 日本未対応)

        To send an MMS simply add an image URL. If necessary, restart your server, then text your Twilio number again. You should receive a text message that includes an image. You can even send multiple images by adding more Media elements to your response. Check out the API Reference for more details.

        MMS messages can only be sent and received by numbers having MMS capability. You can check the capabilities of numbers in the account portal or query the Available Phone Numbers resource to search for Twilio numbers that are MMS enabled.

              
              
              
              

              受信したSMSメッセージに独自の返信を送る

              受信したメッセージに対して、Twilioの(HTTP)リクエストからのBody(本文)パラメーターに応じて異なるメッセージを返信する方法を見てみましょう。

                    
                    
                    
                    

                    これで、Twilio番号に "hi" または "bye" というSMSを送れば、それに応じた返信が得られるはずです。

                    Add-on でメッセージを拡張する

                    メッセージを送る電話番号についての情報がもっと必要ですか? メッセージそのものの持つ感情や他のデータのために、分析が必要ですか?  Add-onマーケットプレイスで利用できるAdd-onなら、こうしたこと、またはそれ以上のことも実現できます。

                    受信メッセージ用にAdd-onを有効にするには、Add-onクイックスタートを参照してください。

                    Add-on ダイアグラム

                    関連トピック

                    When you're ready to dig deeper into handling incoming messages, check out our guide on how to Create an SMS Conversation and our Automated Survey tutorial.

                    David Prothero Jeffrey Linwood Jarod Reyes Kat King Samuel Mendes
                    Rate this page:

                    ヘルプが必要ですか?

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