I am trying to send MMS using Ring Central MMS API in Zoho CRM, but it says bad request error when I use Content-Type = Multipart/Mixed that is mentioned in their API. I am unable to make request body. I have tried 2 codes, please anyone who has worked with this help me out.
Also when I use Content-Type = Application/json, it doesn't throw error but only plain text goes in MMS and file is not attached with MMS. Please anyone help me out ASAP.
========== Code - 1 ==========
leadDet = zoho.crm.getRecordById("Leads",3219374000000974287);
fname = "";
for each rcd in leadDet.get("MMS_Content")
{
fname = rcd.get("file_Name");
}
name = "";
name = name + ifnull(leadDet.get("First_Name"),"") + " ";
name = name + ifnull(leadDet.get("Last_Name"),"") + " ";
leadPhone = leadDet.get("Phone");
if(leadPhone != null && leadPhone != "")
{
info "In phone condition";
res3 = "";
res = leadPhone.remove("-");
res1 = res.remove("(");
res2 = res1.remove(")");
res3 = res2.remove("/");
info "PHONE: " + res3;
}
if(leadDet.get("Phone") != null && leadDet.get("Phone") != "")
{
// Getting lead MMS file
fileupload = leadDet.get("MMS_Content");
filelist = List();
file = "";
for each rec in fileupload
{
fileid = rec.get("attachment_Id");
file = invokeurl
[
url :" https://www.zohoapis.com/crm/v2/Leads/3219374000000974287/Attachments/" + fileid
type :GET
connection:"sign_conn"
];
info "File:" + file;
file.setparamName("file");
filelist.add(file);
// filelist.add(base64file);
}
// filelist.setparamName("attachments");
msg = "Test MMS Sep 9";
refresh_token = zoho.crm.getOrgVariable("mms_refresh_token");
//-------------- Genereate New Access Tokenm
url = "https://platform.devtest.ringcentral.com/restapi/oauth/token";
post_data = Map();
header = Map();
auth_code = "99nfVTJmQBGRBe6hnMB5Gw:45iWDpHLRgGvdEKcy7bXZgsHlZDplARxq_WTDPM6R-zA";
auth_code = zoho.encryption.base64Encode(auth_code);
//-------------- Set Post Data
post_data.put("refresh_token",refresh_token);
post_data.put("grant_type","refresh_token");
//-------------- Set Headers
header.put("Accept","application/json");
header.put("Content-Type","application/x-www-form-urlencoded");
header.put("Authorization","Basic " + auth_code);
//-------------- Get New Access Token
res = invokeurl
[
url :url
type :POST
parameters:post_data
headers:header
];
// info "Access Token: " + res;
if(res.get("access_token") != null)
{
access_token = res.get("access_token");
valueMap = Map();
//------------ Set Access token
valueMap.put("apiname","mms_access_token");
valueMap.put("value",access_token);
zoho.crm.invokeConnector("crm.set",valueMap);
//------------ Set Refresh token
valueMap = Map();
valueMap.put("apiname","mms_refresh_token");
valueMap.put("value",res.get("refresh_token"));
zoho.crm.invokeConnector("crm.set",valueMap);
//------------ Set Token Expire time
// New Token used to send MMS
to_iner = List();
to_map = Map();
header = Map();
data = Map();
from_map = Map();
to_number = res3;
header.put("Authorization","Bearer " + access_token);
header.put("Accept","application/json");
header.put("Content-Type","application/json");
//-------------- get main account info
url = "https://platform.devtest.ringcentral.com/restapi/v1.0/account/~";
res = invokeurl
[
url :url
type :GET
headers:header
];
// info "Main Account Info: " + res;
// info "To Number: " + to_number;
if(res.get("mainNumber") != null)
{
info "From: " + res.get("mainNumber");
// from_number = res.get("mainNumber");
// from_number = "+17372539331";
from_number = res.get("mainNumber");
// from_number = 3234739877;
//-------------- Send Ring SMS
mmsheader = Map();
mmsheader.put("authorization","Bearer " + access_token);
mmsheader.put("accept","application/json");
// mmsheader.put("Content-Type","application/json");
mmsheader.put("Content-Type","multipart/mixed");
eurl = "https://platform.devtest.ringcentral.com/restapi/v1.0/account/~/extension/~/mms";
from_map.put("phoneNumber",from_number);
to_map.put("phoneNumber",to_number);
to_iner.add(to_map);
data.put("from",from_map);
data.put("to",to_iner);
data.put("text",msg);
info "MAP:" + data;
// info "Files: " + filelist;
res1 = invokeurl
[
url :eurl
type :POST
parameters:data.toString()
headers:mmsheader
files:filelist
];
info "MMS Sent: " + res1;
// if(res.get("subject") != null && res.get("subject") != "")
// {
// // SMS Record
// smsRec = Map();
// smsRec.put("SMS_Content",res.get("subject"));
// smsRec.put("SMS_Status",res.get("direction"));
// smsRec.put("Lead_Phone",to_number);
// smsRec.put("Lead_Name",3219374000000974287);
// info zoho.crm.createRecord("SMS_History",smsRec);
// return "SMS Sent Successfully!";
// }
}
else
{
info "Main contact number is not found";
}
}
}
else
{
return "Phone number not found";
}
return "";
Request Body:
========= Code 2 ========
leadDet = zoho.crm.getRecordById("Leads",3219374000000974287);
fname = "";
for each rcd in leadDet.get("MMS_Content")
{
fname = rcd.get("file_Name");
}
name = "";
name = name + ifnull(leadDet.get("First_Name"),"") + " ";
name = name + ifnull(leadDet.get("Last_Name"),"") + " ";
leadPhone = leadDet.get("Phone");
if(leadPhone != null && leadPhone != "")
{
info "In phone condition";
res3 = "";
res = leadPhone.remove("-");
res1 = res.remove("(");
res2 = res1.remove(")");
res3 = res2.remove("/");
info "PHONE: " + res3;
}
if(leadDet.get("Phone") != null && leadDet.get("Phone") != "")
{
// Getting lead MMS file
fileupload = leadDet.get("MMS_Content");
filelist = List();
file = "";
for each rec in fileupload
{
fileid = rec.get("attachment_Id");
file = invokeurl
[
url :" https://www.zohoapis.com/crm/v2/Leads/3219374000000974287/Attachments/" + fileid
type :GET
connection:"sign_conn"
];
info "File:" + file;
file.setparamName("file");
base64file = zoho.encryption.base64Encode(file);
filelist.add("data:image/jpg;name="+file+";base64,"+base64file);
// filelist.add(base64file);
}
// filelist.setparamName("attachments");
msg = "Test MMS Sep 9";
refresh_token = zoho.crm.getOrgVariable("mms_refresh_token");
//-------------- Genereate New Access Tokenm
url = "https://platform.devtest.ringcentral.com/restapi/oauth/token";
post_data = Map();
header = Map();
auth_code = "99nfVTJmQBGRBe6hnMB5Gw:45iWDpHLRgGvdEKcy7bXZgsHlZDplARxq_WTDPM6R-zA";
auth_code = zoho.encryption.base64Encode(auth_code);
//-------------- Set Post Data
post_data.put("refresh_token",refresh_token);
post_data.put("grant_type","refresh_token");
//-------------- Set Headers
header.put("Accept","application/json");
header.put("Content-Type","application/x-www-form-urlencoded");
header.put("Authorization","Basic " + auth_code);
//-------------- Get New Access Token
res = invokeurl
[
url :url
type :POST
parameters:post_data
headers:header
];
info "Access Token: " + res;
if(res.get("access_token") != null)
{
access_token = res.get("access_token");
valueMap = Map();
//------------ Set Access token
valueMap.put("apiname","mms_access_token");
valueMap.put("value",access_token);
zoho.crm.invokeConnector("crm.set",valueMap);
//------------ Set Refresh token
valueMap = Map();
valueMap.put("apiname","mms_refresh_token");
valueMap.put("value",res.get("refresh_token"));
zoho.crm.invokeConnector("crm.set",valueMap);
//------------ Set Token Expire time
// New Token used to send MMS
to_iner = List();
to_map = Map();
header = Map();
data = Map();
from_map = Map();
to_number = res3;
header.put("Authorization","Bearer " + access_token);
header.put("Accept","application/json");
header.put("Content-Type","application/json");
//-------------- get main account info
url = "https://platform.devtest.ringcentral.com/restapi/v1.0/account/~";
res = invokeurl
[
url :url
type :GET
headers:header
];
info "Main Account Info: " + res;
info "To Number: " + to_number;
if(res.get("mainNumber") != null)
{
info "From: " + res.get("mainNumber");
// from_number = res.get("mainNumber");
// from_number = "+17372539331";
from_number = res.get("mainNumber");
// from_number = 3234739877;
//-------------- Send Ring SMS
mmsheader = Map();
mmsheader.put("authorization","Bearer " + access_token);
mmsheader.put("accept","application/json");
// mmsheader.put("Content-Type","application/json");
// mmsheader.put("Content-Disposition", "attachment;filename="+file+"");
mmsheader.put("Content-Type","multipart/mixed");
eurl = "https://platform.devtest.ringcentral.com/restapi/v1.0/account/~/extension/~/mms";
from_map.put("phoneNumber",from_number);
to_map.put("phoneNumber",to_number);
to_iner.add(to_map);
data.put("from",from_map);
data.put("to",to_iner);
data.put("text",msg);
data.put("attachments", filelist);
info "MAP:" + data;
info "Files: " + filelist;
res1 = invokeurl
[
url :eurl
type :POST
parameters:data.toString()
headers:mmsheader
];
info "MMS Sent: " + res1;
// if(res.get("subject") != null && res.get("subject") != "")
// {
// // SMS Record
// smsRec = Map();
// smsRec.put("SMS_Content",res.get("subject"));
// smsRec.put("SMS_Status",res.get("direction"));
// smsRec.put("Lead_Phone",to_number);
// smsRec.put("Lead_Name",3219374000000974287);
// info zoho.crm.createRecord("SMS_History",smsRec);
// return "SMS Sent Successfully!";
// }
}
else
{
info "Main contact number is not found";
}
}
}
else
{
return "Phone number not found";
}
return "";
A new Community is coming to RingCentral!
Posts are currently read-only as we transition into our new platform.We thank you for your patience
during this downtime.
Try Workflow Builder
Did you know you can easily automate tasks like responding to SMS, team messages, and more? Plus it's included with RingCentral Video and RingEX plans!Try RingCentral Workflow Builder