こんにちは。masaakiです。
前月の振り返り、今後の方針共有、メンバー紹介、表彰、交流を目的とした決騎会というイベントを毎月実施しています。
つい先日の決騎会でギターを弾く機会があり、死ぬまでに叶えたいドリームリスト100のひとつ「渋谷で大勢の前でライブ」が叶いました。しかもスタンディングオベーション。ありがとうございます。
さて、
ランサーズではSalesforceというCRM製品を導入しています。今回は、どうやって他サービスと繋いでいるかをご紹介します。
ランサーズサービスとの連動
PHPやRubyから接続しています。
Ruby on RailsからSoapforceで接続するのがカンタンです。
rails new salesforce_sample -d mysql
cd salesforce_sample/
Gemfileに追加
gem ‘soapforce’
以下、コンソールでの例です。
rails c
client = Soapforce::Client.new(:host => ‘test.salesforce.com’)
client.authenticate(:username => ‘ユーザー名’, :password => ‘パスワード’)
client.find_where(‘Account’, Name: ‘テスト株式会社’)
upsertも用意されています。存在してたらUPDATE、存在してなかったらINSERTになります。
client.upsert(‘Account’, ‘ClientID__c’, ClientID__c: 5000, Name: ‘テスト株式会社’)
外部キー(この例で言うClientID__c)は、Salesforce側で外部IDフラグをONにしておく必要があります。
チャットワークとの連動
今度はSalesforceからプッシュする方法。
SalesforceにChatterというチャットツールが用意されているのですが、
弊社ではチャットワークを愛用しています。
apexクラス ソース
public with sharing class HelloTest { private String myMessage = ''; public void push() { String result = ''; Http http = new Http(); HttpRequest request = new HttpRequest(); request.setEndpoint('https://api.chatwork.com/v1/rooms/ルームID/messages'); request.setMethod('POST'); request.setHeader('X-ChatWorkToken', ‘トークン’); request.setBody('body=Salesforceから送信'); HttpResponse response = http.send(request); Integer status = response.getStatusCode(); if (status == 200){ myMessage = response.getBody(); }else{ myMessage = status.format() + response.getBody(); } } public String message { get{ return myMessage; } } }
Visualforceソース
<apex:page controller="HelloTest"> <h1>チャットワーク送信サンプル</h1> <apex:form > <apex:commandButton action="{!push}" value="チャットワーク送信"/> </apex:form> {!message} </apex:page>
まとめ
Salesforceはクラウドサービスの老舗というかレジェンドになると思うんですが今年もTwitter買収話とか、アインシュタインとか、鼻息荒い感じがいいですよね。
今後も注目していきたいと思います。