Ruby製のSalesforce APIクライアントのSoapforceを使ってみました。名前の通り、SOAP APIで実装されています。

Ruby製の APIクライアントだとrestforceが有名だと思いますが、今回はバルク処理をどうしても行いたかったため、Soapforceを使ってみました。winter16でREST APIのSObject Treeが正式リリースされたので、そっちを使ってもOKですが…。

インストール&使い方

Gemfileに以下を記述してbundle install

使い方はこんな感じで

Soapforceコードリーディング

Soapforceは内部でSavonというRubyのSOAP Clientを使っています。

こんな感じでWSDLを読み込ませてクライアントを作成して

あとはcallメソッドを呼び出せばSOAPリクエストができるようになっています。

ログインのSOAPリクエストはこんな感じのXMLになります。

上記のRubyコード内のusername、passwordのシンボルキーは内部のXMLタグ名になっています。つまり、シンボル名が変われば中身のパラメータ名が変わります。

また、SOAPメッセージのデバッグはloggerパラメータをセットすればOK。

コードはSavonを使っているので、かなりシンプルで読みやすいです。client.rbがクライアントでresult.rbquery_result.rbsobject.rbでラッピングする構造となっています。