如何解决如果没有Twilio for Salesforce App,我们可以使用Twilio创建Salesforce平台活动吗?
我们创建了一个Twilio函数来在Salesforce中创建平台事件;但是,它仅返回500或502个错误,提示身份验证问题。有一个付费的Twilio For Salesforce应用程序,但我认为那是给那些不想自己编写API的人的。是否可以在没有此应用的情况下创建平台事件功能?我不确定我们缺少什么。
//================================================================================
// Modules
//================================================================================
var querystring = require("querystring");
var request = require("request");
//================================================================================
// Context Variables
//================================================================================
// Are we using a sandbox or not
var isSandbox = context.SF_IS_SANDBOX == "false";
//Consumer Key from Salesforce Connected app
//var clientId = context.SF_CONSUMER_KEY;
var clientId =
"123456"
//Consumer Secrect from Salesforce Connected app
//var clientSecret = context.SF_CONSUMER_SECRET;
var clientSecret =
"45678";
//The salesforce username;
//var sfUserName = context.SF_USERNAME;
var sfUserName = "sflogin@login.com";
//The salesforce password
//var sfPassword = context.SF_PASSWORD;
var sfPassword = "12345";
//The salesforce user token
//var sfToken = context.SF_TOKEN;
var sfToken = "logintoken";
//================================================================================
// End Context Variables
//================================================================================
// Use namespace is to tell the code to apply the package namespace or not.
// The default should be true. If you are getting the requested resource
// does not exist then try setting value to false.
var useNameSpace = false;
//The salesforce managed package namespace
var nameSpace = "TwilioSF__";
//The login url
var salesforceUrl = "https://login.salesforce.com";
if (isSandbox === true) {
salesforceUrl = "https://test.salesforce.com";
}
run();
function run() {
var form = {
grant_type: "authorization_code",client_id: clientId,client_secret: clientSecret,// username: sfUserName,// password: sfPassword + sfToken,};
var formData = querystring.stringify(form);
var contentLength = formData.length;
request(
{
headers: {
"Content-Length": contentLength,"Content-Type": "application/x-www-form-urlencoded",},uri: salesforceUrl + "/services/oauth2/token",body: formData,method: "POST",function (err,res,body) {
if (res.statusCode == 200) {
console.log("Success Getting Token");
var sfAuthReponse = JSON.parse(body);
var platformEvent = buildPlatformEvent(event);
postPlatformEvent(sfAuthReponse,platformEvent);
} else {
/* finishWithError("Error Getting Token:" + body); */
console.log("Executed else statement");
}
}
);
}
function postPlatformEvent(sfAuthReponse,platformEvent) {
console.log("Posting Platform Event:",platformEvent);
var options = {
uri: sfAuthReponse.instance_url + getPlatformEventUrl(),headers: {
Authorization: "Bearer " + sfAuthReponse.access_token,body: platformEvent,json: true,};
request(options,processEventResponse);
}
function processEventResponse(error,response,body) {
if (!error && response.statusCode == 201) {
console.log(
"Success Posting Platform Event: Server responded with:",body
);
finishSuccess();
} else {
console.error("Error Posting Platform Event:",body);
finishWithError("Error Posting Platform Event:" + body);
}
}
function buildPlatformEvent(event) {
//Object map that maps Twilio Field to Salesforce Field
var eventToPEMap = {
Body: "Body__c",To: "To__c",From: "From__c",AccountSid: "AccountSid__c",SmsSid: "MessageSid__c",MessagingServiceSid: "MessagingServiceSid__c",SmsStatus: "SmsStatus__c",ErrorCode: "ErrorCode__c","testfield__c": event.mturkid_entry,};
var platformEvent = {};
//Loop through event and build platform event
for (var property in event) {
if (eventToPEMap.hasOwnProperty(property)) {
var eventProp;
if (useNameSpace) {
eventProp = nameSpace + eventToPEMap[property];
} else {
eventProp = eventToPEMap[property];
}
platformEvent[eventProp] = event[property];
}
}
return platformEvent;
}
function getPlatformEventUrl() {
if (useNameSpace) {
return (
"/services/data/v43.0/sobjects/" +
nameSpace +
"Twilio_Message_Status__e"
);
} else {
return "/services/data/v43.0/sobjects/Twilio_Message_Status__e";
}
}
function finishSuccess(body) {
callback();
}
function finishWithError(body) {
callback(body);
}
};```
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。