0

Salesforce でサイトの URL にアクセスできるクラスがあります。サイト URL " https://somesalesforce.com/smsToApex " と twilio アカウントの SMS URL と同じですが、このクラスを呼び出すことはできません。ここに画像の説明を入力私はこのドキュメントを参照しました.twilio SMS url は正しいかどうかを確認する方法ではありませんか?Twilio アカウントの SMS url と salesforce サイトの url は現在と同じです.twilio 経由で SMS が来るたびに、自動的にケースがサンドボックスに作成されます.しかし、ここでは発生しませんでした.私は正しいプロデューサを行っていませんか?.誰かが私を助けてくれますか.この問題を解決するにはどうすればよいですか? Salesforce サイトの URL と Twilio SMS の URL の両方を指定します。

@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;                  
     }                       
}
4

1 に答える 1

0

確認事項をいくつか...

  • Postmanなどを介してその URL に投稿できますか? JSONを渡すと、少なくともエラーが発生するはずです...
  • メッセージが SF に到達してそこで失敗するか、それともまったく到達しないか。これは、SFDC の URL/REST クラスに問題があることを示しています
  • Twilio SMS ログを確認します。成功または失敗の結果が SMS ログに表示され、エラー コードが表示されます。
  • SF のカスタム設定で Twilio クレデンシャルを設定しましたか? 署名チェックに使用します。
  • SFDC デバッグ ログには何が表示されますか? [監視] - [デバッグ] で設定し、サイト ユーザーを検索すると、サイト ユーザーのデバッグ ログを表示できます。
于 2014-06-23T17:05:08.447 に答える