URL-адрес мультимедиа в сообщении запроса TwiML

Я настроил URL-адрес для получения сообщения TwiML. Я получаю следующие поля

  1. Аккаунт Sid 2.Body 3. From 4.MessageSid 5.NumMedia

Однако я не получаю следующие

  1. MediaContentType
  2. MediaUrl

Хотя поле NumMedia имеет значение 2, я не получаю MediaUrl.

Я использую c #.

Ниже приведена структура моего класса, в которой будет храниться сообщение запроса, полученное от Twilio.

public class TwilioRequest
    {
        public string MessageSid { get; set; }
        public string AccountSid { get; set; }
        public string From { get; set; }
        public string To { get; set; }
        public string Body { get; set; }
        public int NumMedia { get; set; }
        public List<string> MediaContentType { get; set; }
        public List<string> MediaUrl { get; set; }
}

Пожалуйста, направьте меня.


person MARKAND Bhatt    schedule 08.08.2016    source источник


Ответы (1)


Когда MMS-сообщение получено и содержит мультимедийные данные (изображения, видео), оно действительно помещает счетчик в поле NumMedia запроса POST, направленного на ваш сервер. К индивидуальным URL-адресам и идентификаторам мультимедиа будут добавлены их последовательные порядковые номера (до 10), и это приведет к тому, что запрос POST будет иметь много отдельных полей, каждое для содержимого мультимедиа:

"MediaContentType0" : "",
"MediaUrl0" :"",
"MediaContentType1" : "",
"MediaUrl1" :""

При обнаружении носителя в запросе POST (! = 0 NumMedia) вы должны перебирать поля до найти интересные аргументы.

См. Пример реализации ниже:

// Build name value pairs for the incoming web hook from Twilio
NameValueCollection nvc = Request.Form;
// Type the name value pairs
string strFrom = nvc["From"];
string strNumMedia = nvc["NumMedia"];
string strBody = nvc["Body"];

// Holds the image type and link to the images
List<string> listMediaUrl = new List<string>();
List<string> listMediaType = new List<string>();
List<Stream> listImages = new List<

// Find if there was any multimedia content

if (int.Parse(strNumMedia) != 0) {
  // If there was find out the media type and the image url so we can pick them up
  for (int intCount = 0; intCount < int.Parse(strNumMedia);) {
    // Store the media type for the image even through they should be the same
    listMediaType.Add(nvc[("MediaContentType" + intCount).ToString()]);
    // Store the image there is a fair chance of getting more then one image Twilio supports 10 in a single MMS up to 5Mb
    listMediaUrl.Add(nvc[("MediaUrl" + intCount).ToString()]);
    // Update the loop counter
    intCount = intCount + 1;
  }
}
person Megan Speir    schedule 09.08.2016