2017-11-01 12 views
1

私はasp、net MVCアプリケーションを作成しています。要件の1つは、データベースに格納されたセル番号から大量のSMSを送信することです。私はTwilioは、REST APIを介してC#と.NETにSMSメッセージを送信しましたが、私はMVCでこれを使用する方法が分からない、ここではコードです:asp.net mvcアプリケーションから大量のSMSを送信する方法

using System; 
using System.Collections.Generic; 
using Twilio; 
using Twilio.Rest.Api.V2010.Account; 
using Twilio.Types; 

namespace Quickstart 
{ 
class SmsSender 
{ 
    static void Main(string[] args) 
    { 
     const string accountSid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; 
     const string authToken = "your_auth_token"; 

     TwilioClient.Init(accountSid, authToken); 

     var people = new Dictionary<string, string>() { 
      {"+14158675309", "Curious George"}, 
      {"+14158675310", "Boots"}, 
      {"+14158675311", "Virgil"} 
     }; 

     // Iterate over all our friends 
     foreach (var person in people) 
     { 
      // Send a new outgoing SMS by POSTing to the Messages resource 
      MessageResource.Create(
       from: new PhoneNumber("555-555-5555"), // From number, must be an SMS-enabled Twilio number 
       to: new PhoneNumber(person.Key), // To number, if using Sandbox see note above 
       // Message content 
       body: $"Hey {person.Value} Monkey Party at 6PM. Bring Bananas!"); 

      Console.WriteLine($"Sent message to {person.Value}"); 
     } 
    } 
} 

}

は、私はあなたの援助に感謝します。

+0

エラーが発生しますか?そのために – Matthiee

+0

スレッドを使用してください。 – mardagz

答えて

1

データベースからユーザーを収集して、特定のユーザーに関連付けられた電話番号のコレクションを持つように、既存のユーザーは、テキストメッセージに関する情報を含むオブジェクトです。これを必要に応じてカスタマイズできます。あなたはこのようなデータベース呼び出しを行うことができます

var people = new Dictionary<string, string>() { 
      {"+14158675309", "Curious George"}, 
      {"+14158675310", "Boots"}, 
      {"+14158675311", "Virgil"} 
     }; 

:代わりのような静的辞書の

SMSNotifier notifier = new SMSNotifier(); 
var doctorsToNotify = db.AspNetUsers.Where(x => x.ReceiveSMS == true && x.AspNetUserRoles.Any(y => y.RoleId == "1")).ToList(); 

ここでは、あなたの 'バルク' のユーザーをループ:

  foreach (AspNetUser dr in doctorsToNotify) 
      { 
       await notifier.SendWaitingPatientNotification(existingUser, dr.Phone); 
      } 

通知者クラス(電話番号を 'xxxxxxx'に変更する数Twilioは)提供:

public class SMSNotifier 
    { 
     public SMSNotifier() 
     { 
      var accountSid = ConfigurationManager.AppSettings["TwilioSid"]; 
      // Your Auth Token from twilio.com/console 
      var authToken = ConfigurationManager.AppSettings["TwilioToken"]; ; 

      TwilioClient.Init(accountSid, authToken); 
     } 

     public async Task SendWaitingPatientNotification(AspNetUser user, string phonenumber) 
     { 
      var message = await MessageResource.CreateAsync(
      to: new PhoneNumber("+1" + phonenumber), 
      from: new PhoneNumber("+xxxxxxxxxx"), 
      body: string.Format("Patient {0} {1} has entered the waiting room at {2}. Please visit the patient queue to see patient.", user.FirstName, user.LastName, DateTime.Now.ToString())); 

     } 
    } 

を私は、Web設定ファイルにAPIのSIDとトークンを保存し、ConfigurationManagerを使用して、それを取り出します。あなたがもっと助けが必要な場合は教えてください。

関連する問題