Как получить SMS-запрос через twilio

У меня есть класс, который может получить доступ к 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;                  
     }                       
}

person Ramesh S    schedule 23.06.2014    source источник
comment
возможный дубликат Как получить SMS через twilio   -  person metadaddy    schedule 23.06.2014
comment
Я считаю, что Salesforce требует от вас аутентификации через Oauth для публикации в их службе REST. Twilio не может этого сделать. Вам нужно будет создать прокси-сервис, который взаимодействует между Twilio и Salesforce.   -  person TwHello Inc    schedule 23.06.2014
comment
На самом деле это неправильно — вы можете отправлять сообщения в общедоступную конечную точку SF REST (т. е. НЕ прошедшую проверку подлинности), если вы добавите класс вершины в доступные классы для профиля этого сайта.   -  person BritishBoyinDC    schedule 23.06.2014
comment
@BritishBoyinDC Спасибо. Это здорово знать.   -  person TwHello Inc    schedule 24.06.2014


Ответы (1)


Несколько вещей, которые нужно проверить...

  • Можете ли вы публиковать сообщения на этот URL через что-то вроде Postman? Вы должны по крайней мере получить сообщение об ошибке, если вы передадите какой-либо JSON...
  • Доходит ли сообщение до SF и там происходит сбой или оно никогда не доходит, что указывает на проблему с классом URL/REST в SFDC.
  • Проверьте журналы SMS Twilio — вы должны увидеть результат в журналах SMS: успех или неудачу с код ошибки.
  • Вы установили кредиты Twilio в настройке Cusom в SF? Он использует их для проверки подписи.
  • Что показывают журналы отладки SFDC? Вы можете просматривать журналы отладки для пользователя Сайтов, если вы настроили его в Монитор — Отладка и выполните поиск пользователя Сайта.
person BritishBoyinDC    schedule 23.06.2014