本ページは広告が含まれています。気になる広告をクリック頂けますと、サーバ運営費になります(^^
SMSをC#から送りたい
SMSをプログラム的に送りたい。手軽に作りたい方へ手順をまとめてみました。
Twilioプラットフォームを利用すると、驚くほど簡単にSMSが送れます。それも、無料のトライアルアカウントで、試験できるのでこれは必見です。
Visual Studio 2017を利用しており、C#からコンソールアプリを作ってSMSを送った時のメモです。
Twilioを利用してみる
Twilioでは、SMS送信APIを準備して、簡単に自分のアプリケーションにSMS送信機能を組み込めるように準備があるプラットフォームになっています。
無料でトライアルアカウントも作成できるし、月額無料・初期費用無料なので気軽に試せます。
無料アカウントの作成
無料アカウントを作成します。
クレジットカードの登録不要です。
途中から英語だったので、メモ
登録完了
登録が完了すると、ダッシュボードが表示されます。
サンプルを見ながら
手順を追っていきます。
電話番号の取得
電話番号を取得しますが、日本の電話番号だと、Voiceしか有効になっていません。音声通話認証などしか利用できなさそうです。
Buy a Numberページで、COUNTRYを United States にすると、SMSにチェックができるようになります。
この状態でSearchボタンを押すと、利用できる電話番号の一覧が表示されます。
無料枠が500円与えられているので、その枠内で、月額150円ほどの電話番号を購入する事ができます。気に入った番号をBuyします。
C#および.NETでSMSおよびMMSメッセージを送信する
こちらのサンプルコードに従って、実装してみます。
コンソールアプリケーションを作成し、
Nugetします。
Twilio = Twilio REST API helper library
これがSMS送信のためのAPIです。
サンプルコードのまま実装するとこんな感じ
using System; using Twilio; using Twilio.Rest.Api.V2010.Account; class Program { static void Main(string[] args) { // Find your Account Sid and Token at twilio.com/console // and set the environment variables. See http://twil.io/secure string accountSid = Environment.GetEnvironmentVariable("SIDをここに"); string authToken = Environment.GetEnvironmentVariable("AUTHトークンをここに"); TwilioClient.Init(accountSid, authToken); var message = MessageResource.Create( body: "This is the ship that made the Kessel Run in fourteen parsecs?", from: new Twilio.Types.PhoneNumber("+15017122661"), to: new Twilio.Types.PhoneNumber("+15558675310") ); Console.WriteLine(message.Sid); } }
この通りに実装すると、[Username can not be null]というエラーメッセージが表示されてSMS送信されません。
なんでかなぁ。Environment.GetEnvironmentVariableで、Stringに格納している文字列がNullになっているので、直接文字列指定してあげるとSMSが送信されました。
using System; using Twilio; using Twilio.Rest.Api.V2010.Account; namespace TwilioSMS { class Program { static void Main(string[] args) { TwilioClient.Init("ここにSID", "ここにAuthトークン"); var message = MessageResource.Create( body: "This is the ship that made the Kessel Run in fourteen parsecs?", from: new Twilio.Types.PhoneNumber("取得した電話番号"), to: new Twilio.Types.PhoneNumber("SMSを送信する電話番号") ); Console.WriteLine(message.Sid); } } }
SID , AuthToken,取得した電話番号は、Twilio Consoleから確認できます。
こんなメッセージが届きます。
日本語の送信も可能です。
※注意 トライアルアカウントで、SMS送信できる電話番号は、トライアルアカウント作成時に認証した携帯電話番号だけです!
※注意 トライアルアカウントでは文頭に「Sent from your Twilio traial account」という文字列がつきます。
TwilioのRESTAPIとTwilioSMSを使用してワークフローを自動化
.Net のAPIをダウンロードします。
登録初期時点で出てくる、このサンプルコードはTwilioのRESTAPIとTwilioSMSを使用してワークフローを自動化するバケーションレンタルサイトのホームページになっています。
一応動き始めたのでメモしておいたのですが、特に使わなくてもいいように思います。
TwilioのRESTAPIとTwilioSMSを使用してワークフローを自動化するサンプルコード
.Net APIをVisualStudioで開きます。先ほどダウンロードした、airtng-csharp-masterフォルダの中[AirTNG.sln]を開きます。
Local.configファイルを追加します
Local.configの中身はこんな感じです。
<?xml version="1.0" encoding="utf-8"?> <configuration> <system.web> <compilation debug="true" targetFramework="4.5.1" /> <httpRuntime targetFramework="4.5.1" /> </system.web> <appSettings> <add key="TwilioAccountSid" value="SIDをここに設定" /> <add key="TwilioAuthToken" value="AuthTokenをここに設定" /> <add key="TwilioPhoneNumber" value="電話番号を設定" /> </appSettings> </configuration>
SIDとAuthToken、電話番号はダッシュボードにて確認できます
ASP.netからSMS送信してみる
ASP.NET Webアプリケーションを新規作成して、SMSを送ることができるかテストしてみます。
Nuget パッケージの管理でTwilioをインストール
Webフォームを作成する
Webフォームにボタンを配置
ボタンイベントにTwilio送信プロセスを設定
protected void Button1_Click(object sender, EventArgs e) { // Find your Account Sid and Token at twilio.com/console // and set the environment variables. See http://twil.io/secure TwilioClient.Init("SIDを設定", "AUTHトークンを設定"); var message = MessageResource.Create( body: "日本語送信のテストです", from: new Twilio.Types.PhoneNumber("取得した電話番号を設定"), to: new Twilio.Types.PhoneNumber("送信先の携帯電話番号を設定") ); }
Trialアカウントそのままにしておくとアカウント停止状態になる
電話番号を取得してそのままにしておくと、
こんな感じで一時停止状態になってしまいました。
この状態になると、
trial mode のままでは支払いができないようで、Upgrade Nowしなければ引き続きの利用はできないです。
trialで取得した電話番号は、約110円の月額基本料がかかります。これは為替の関係で、140円や150円くらいになる事もあり、トライアルで電話番号を取得しそのまま放置すると、500円のトライアル枠を使い切り、費用が発生するようになります。
*注2:1ドル=110円を想定。実際の為替レートにより変動致します。
無料でもっと試したい
新しいプロジェクトを作成します
すると、また500円の枠がもらえます。テスト開発中はこれでいいかなって感じです。費用をかけずに開発できるのはありがたいです。