SalesforceからTwilioのAPIを使ってSMSメッセージを送信する

この記事では、SalesforceからTwilioでSMS発信を行うための設定と、Apexソースをご紹介します。

SalesforceでTwilioを使うには、Twilioから提供されている、無料のヘルパークラスを使うと便利です。

APexによるクラスが提供されているので、環境の設定とわずか数行の記述でSMS送信等が実現できます。

https://jp.twilio.com/docs/libraries/salesforce

twilio

 

TWILIO セールスフォースヘルパーライブラリーのセットアップ

ヘルパーライブラリーは2つの方法でSalesforce組織にセットアップできます。

ひとつは、パッケージのインストール・プロセスを利用することが可能で、上記URLの「セルフビルド・パッケージ」をクリックしてSalesforce組織にログインすれば、その組織に自動でインストールできます。

もうひとつは、既にインストールされている場合は、MigrationToolを使って、Githubから取得したソースをAntのビルドプロセスで組織にデプロイできます。(MigrationToolの使い方はこちらの記事を参考に。)

 

Salesforce組織の設定

ヘルパーライブラリーのセットアップができたら、環境設定を行います。

主な設定箇所は以下の2点です。

 

Twilio用カスタム設定を行う

ヘルパーライブラリーのセットアップを行うと、「Twilio Config」というカスタム設定ができています。

「ACCOUNT SID」と「AUTH TOKEN」の設定を、APexではなく、レコードに行えるので、デプロイ時の柔軟性がアップします。

ここにレコードを追加して、前回の記事で確認した「ACCOUNT SID」と「AUTH TOKEN」を設定しておきましょう。

sfdc setting

 

リモートサイト設定

SalesforceのApex内から外部にWebサービスのコールを行うには、リモートサイトを設定して、Calloutを許可しておく必要があります。

TwilioのAPIポイントである「https://api.twilio.com」を適当な名前で追加して、許可しておきましょう。

 

Apexのソース記述例

上記までの設定を行えば、後は、TwilioのAPI呼び出しをApexコードに記述するだけです。

public void SendSMS()
{
    
    System.debug('SendSMS');
    Try{
        textMessage = 'tests';
        FromMobileNumber = '+xxxxxxx';
        ToMobileNumber = '+yyyyyyy';
        
        if(ToMobileNumber != '')
        {
            List<TwilioConfig__c> AdminInfo = TwilioConfig__c.getall().values();
            String ACCOUNT_SID = '';
            String AUTH_TOKEN  = '' ;            
            String SenderMobileNumber = '' ;
            // Informaton getting from custom setting
            if(AdminInfo.size()>0)
            {          
                ACCOUNT_SID             = AdminInfo[0].AccountSid__c;
                AUTH_TOKEN              = AdminInfo[0].AuthToken__c;                
            }            
            TwilioRestClient client = new TwilioRestClient(ACCOUNT_SID, AUTH_TOKEN);
           
            Map properties = new Map {
                        'To'   => ToMobileNumber ,
                        'From' => FromMobileNumber,
                        'Body' => textMessage
                };
            TwilioSMS message = client.getAccount().getSmsMessages().create(properties);
            ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, 'Message has been sent'));
        }
        else
        {
            ApexPages.addMessage(new ApexPages.message(ApexPages.severity.Error, 'Pelase provide valid Mobile Number '));
        }
    }catch(Exception e )
    {
        ApexPages.addMessages(e);      
        return ;
    }
}

使い方はここを参考にできます。

http://twilio-salesforce.readthedocs.io/en/latest/

コメントを残す

サブコンテンツ

このページの先頭へ