У меня есть класс, который может получить доступ к URL-адресу сайта в системе продаж. URL-адрес сайта "https://somesalesforce.com/smsToApex" и совпадает с URL-адресом смс-адреса учетной записи twilio, но это класс не может быть вызван. У меня есть ссылка этот документ. URL-адрес twilio SMS Правильно ли это, не как проверить? URL-адрес SMS учетной записи Twilio и URL-адрес сайта Salesforce такие же, как и сейчас. Всякий раз, когда SMS приходит через twilio, тогда автоматически создается дело в песочнице. Но здесь этого не произошло. Я делаю правильный производитель? кто-нибудь, пожалуйста, помогите мне. Как решить эту проблему. Я проверил URL-адрес sms twilio следующим образом: "https://somesalesforce.com/service/apexrest/smsToApex". URL-адрес, который я укажу как URL-адрес сайта Salesforce, так и URL-адрес Twilio SMS.
@RestResource(urlMapping='/smsToApex')
global class smsToApex
{
Static TwilioAccount account = TwilioAPI.getDefaultAccount();
@HttpPost
global static void incomingSMS()
{
// This will error out with System.LimitException if we would exceed
// our daily email limit
Messaging.reserveSingleEmailCapacity(1);
String expectedSignature = RestContext.request.headers.get('X-Twilio-Signature');
system.debug('ES' + expectedSignature);
String url = 'https://' + RestContext.request.headers.get('Host') + '/services/apexrest' + RestContext.request.requestURI;
Map <String, String> params = RestContext.request.params;
system.debug('smsToApex========>'+params);
// Validate signature
if (!TwilioAPI.getDefaultClient().validateRequest(expectedSignature, url, params)) {
RestContext.response.statusCode = 403;
RestContext.response.responseBody = Blob.valueOf('Failure! Rcvd '+expectedSignature+'\nURL '+url/*+'\nHeaders'+RestContext.request.headers*/);
return;
}
RestContext.response.responseBody = Blob.valueOf('ok');
String caseFrom = params.get('From');
String caseTo = params.get('To');
String caseBody = params.get('Body');
System.debug('Step 4 smsToApex caseFrom==>'+caseFrom);
System.debug('Step 5 smsToApex caseTo===>'+caseTo);
System.debug('Step 6 smsToApex caseBody===>'+caseBody);
Case ca = new Case();
ca.Subject = 'Test smsToApex caseFrom'+caseFrom;
ca.Description = 'Test smsToApex caseBody'+caseBody+','+caseTo;
ca.Origin = 'Phone';
INSERT ca;
}
}