Search code examples
parse-platformtwilioparse-cloud-codemms

Send mms using twilio and parse.com


I saw this topic before: Send MMS using Twilio in ios But it cant help me.

So... the problem is I'm trying to send MMS using such chain: My program -> parse.com (using CloudCode)-> twilio. Text messages works fine but images never been delivered with mms. I'm sure that images comes to parse.com database. Here's code of message send function on CloudCode (looks like problem happens here):

function Serialize(obj) {
    var str = [];
    for (var p in obj) {
        if (obj.hasOwnProperty(p)) {
            str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
        }
    }
    console.log("Serialized object: " + str);
    return str.join("&");
}

some code

var params = Serialize({
                            To: number,
                            From: message.get("from"),
                            Body: resultBody,
                            MediaInfo: medialUrl
                        });

                            Parse.Cloud.httpRequest({
                                method: 'POST',
                                url: 'https://api.twilio.com/2010-04-01/Accounts/**********************/Messages.json',
                                headers: {
                                    'Authorization': 'Basic *****************************************************'
                                },
                                body: params,
                                success: function (httpResponse) {
                                    console.log("SMS was sent to " + number);
                                    promise.resolve(number);
                                }, error: function (httpResponse) {
                                    var data = httpResponse.data;
                                    var errorMessage = data.message;
                                    console.error("Twilio Error response to number " + number + "\n" + JSON.stringify(httpResponse));

                                    message.add("errorNumbers", number);
                                    message.save();
                                    promise.reject(number);

                                    var error = new DetailedError();
                                    error.set("phoneNumber", number);
                                    error.set("errorMessage", "(" + data.code + ") " + errorMessage);
                                    error.set("message", message);
                                    error.save();

                                }
      }); some further code

Any help appreciate


Solution

  • Twilio developer evangelist here.

    You seem to be using the parameter name MediaInfo for the media URL. That should be MediaUrl (see the sending messages documentation). I think everything else you have looks good, so change that bit and your media should start working!