メニュー

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の会話を作成する

同じ相手との間で送受信される大量の個別メッセージを本当の会話にするにはどうしたらよいでしょうか。 これを行うには両者の間でやりとりされるメッセージの状態を記憶しておく何らかの方法が必要です。 なぜならSMSがステートレスな(状態を伴わない)プロトコルであるためです。HTTPもまたステートレスなプロトコルであり、伝統的なWebアプリケーションの構築には同様のハードルがあります。WebアプリケーションではHTTP Cookieを使用によりこの問題が解決されており、TwilioメッセージングAPIも車輪の再発明はせず、同様の解決法を使用します。

This guide will show you how Programmable SMS makes this easy for you and your ASP.NET application. 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.

C#とASP.NETによるSMSのWebhook開発がはじめての方には、まず C#でSMSやMMS(日本未対応)を受信、返信する を先にお読みいただくのもよいでしょう。 準備はよろしいですか? さぁ、はじめましょう!

WebhookでHTTP Cookieを使用する

Cookieとは何か 

Webアプリケーションの場合と同様、Cookieはアプリケーションがユーザー名やアカウントといった情報を追跡するためにTwilioのサーバー上に保存できる軽量なファイルです。Twilio SMSでは、2者間の「会話」がCookieの影響範囲となります。 — つまり送受信されるおのおのの To/From 電話番号の組に対して一意なCookieが与えられます。 たとえば、+819055552222と+14155551111の間で交わされるメッセージに対して一意のCookieを保存でき、これは+818055553333と+14155551111間で使用されるCookieとは別のものです。

なぜCookieなのか?

Webアプリケーションでは、同一のブラウザーからの個別のリクエスト間の「状態の連続性」を維持するためにCookieを書き出します。 同様にSMSメッセージは2者間の独立したコミュニケーションであるため、TwilioではCookieを介した論理セッションとしてこれらを結びつけることが可能です。 これはつまり、リクエスト間でのアプリケーションの状態を追跡するためにサーバー側のセッションを使用できるということです。 イケてるでしょう? 活動がないまま4時間が経過すると、その会話用のCookieはTwilioによって、あたかもユーザーが「ブラウザーを閉じたかのように」期限切れとなります。

会話データを保存する

Cookieを使用すると、複数のメッセージにまたがって状態を共有できるため、別々のメッセージを会話として扱うことができ、将来の参照のために会話に関するデータをCookieに格納することができます。

データは直接Cookieに保存するか、セッション状態管理フレームワークを使用できます。 下記のコードサンプルでは後者の方法、つまりASP.NETで利用できるセッション状態機能を使用しています。

セッションを用いてSMSの会話を捕捉する

Let's try using session counters to see if a particular user has messaged us before. If they're a new sender, we'll thank them for the new message. If they've sent us messages before, we'll specify how many messages we've gotten from them.

        
        
        
        

        とっても簡単でしょう? Cookieを使って会話を捕捉する、より複雑なサンプルをお探しなら、従業員目録のチュートリアルをチェックしてみてください。

        David Prothero Jarod Reyes
        Rate this page:

        ヘルプが必要ですか?

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