この記事では、SalesforceからTwilioでSMS発信を行うための設定と、Apexソースをご紹介します。
SalesforceでTwilioを使うには、Twilioから提供されている、無料のヘルパークラスを使うと便利です。
APexによるクラスが提供されているので、環境の設定とわずか数行の記述でSMS送信等が実現できます。
https://jp.twilio.com/docs/libraries/salesforce
TWILIO セールスフォースヘルパーライブラリーのセットアップ
ヘルパーライブラリーは2つの方法でSalesforce組織にセットアップできます。
ひとつは、パッケージのインストール・プロセスを利用することが可能で、上記URLの「セルフビルド・パッケージ」をクリックしてSalesforce組織にログインすれば、その組織に自動でインストールできます。
もうひとつは、既にインストールされている場合は、MigrationToolを使って、Githubから取得したソースをAntのビルドプロセスで組織にデプロイできます。(MigrationToolの使い方はこちらの記事を参考に。)
Salesforce組織の設定
ヘルパーライブラリーのセットアップができたら、環境設定を行います。
主な設定箇所は以下の2点です。
Twilio用カスタム設定を行う
ヘルパーライブラリーのセットアップを行うと、「Twilio Config」というカスタム設定ができています。
「ACCOUNT SID」と「AUTH TOKEN」の設定を、APexではなく、レコードに行えるので、デプロイ時の柔軟性がアップします。
ここにレコードを追加して、前回の記事で確認した「ACCOUNT SID」と「AUTH TOKEN」を設定しておきましょう。
リモートサイト設定
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); Mapproperties = 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/