News & Announcements User Community Developer Community

Welcome to the RingCentral Community

Please note the community is currently under maintenance and is read-only.

Search
Make sure to review our Terms of Use and Community Guidelines.
  Please note the community is currently under maintenance and is read-only.
Home » Developers
Ring Central MMS API Not working in CRM Deluge
Tags: rest api
Sep 17, 2021 at 1:35pm   •   0 replies  •  0 likes
Eugene Gold

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:

1631534139622.png


========= 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 "";

1631534250144.png




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

PRODUCTS
RingEX
Message
Video
Phone
OPEN ECOSYSTEM
Developer Platform
APIs
Integrated Apps
App Gallery
Developer support
Games and rewards

RESOURCES
Resource center
Blog
Product Releases
Accessibility
QUICK LINKS
App Download
RingCentral App login
Admin Portal Login
Contact Sales
© 1999-2024 RingCentral, Inc. All rights reserved. Legal Privacy Notice Site Map Contact Us