2017-11-01 1 views
1

Ich erstelle asp, net MVC-Anwendung, eine der Anforderungen ist es, Bulk-SMS aus Zellnummern in der Datenbank gespeichert senden. Ich habe Twilio SMS-Nachrichten sendet in C# und .NET über REST-API, aber ich habe keine Ahnung, wie diese zu verwenden, in MVC, ist hier der Code:So senden Sie Bulk-SMS aus asp.net mvc-Anwendung

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}"); 
     } 
    } 
} 

}

ich Ihre Hilfe zu schätzen wissen.

+0

Haben Sie Fehler? – Matthiee

+0

Thread für das verwenden. – mardagz

Antwort

1

Sammeln Sie Benutzer aus der Datenbank, so dass Sie eine Sammlung von Telefonnummern mit bestimmten Benutzern haben, vorhandener Benutzer ist ein Objekt, das Informationen darüber enthält, was Sie gerade schreiben. Sie können dies an Ihre Bedürfnisse anpassen.

Statt eines statischen Wörterbuch wie:

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

Sie eine Datenbank Aufruf wie folgt machen:

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

Hier können Sie eine Schleife durch Ihre 'bulk' Benutzer:

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

Notifier-Klasse (bearbeiten Sie 'xxxxxxx', um das Telefon zu haben Anzahl Twilio zur Verfügung gestellt):

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())); 

     } 
    } 

ich die API sid speichern und in der Web-Konfigurationsdatei Token und Abrufen von den ConfigurationManager verwenden. Lass es mich wissen, wenn du mehr Hilfe brauchst.

Verwandte Themen