Force.com CLIを使ってコマンドラインからSalesforceの情報を収集/更新する
Salesforceはじめてみた
幼稚園でおともだちのリスト化とお出かけのスケジューリングとナーチャリングをするためにSalesforceを始めてみた、5歳のあかりです。
いきなりですが、私はエンジニアなので、画面を触りたくありません。でも、APIを直接コールするのも面倒です。そこで、CLI(コマンドライン・インタフェース)です。
さっそくググりました。それらしいものが出てきました。
Force.com CLI
Force.comとは何でしょうか。アプリケーション開発プラットフォームのようです。SalesforceのSales Cloudに入ったデータを読めそうです。読み込めるかやってみましょう。
Force.com CLIをダウンロードしてみます。
Mac版を入れてみました。コマンドたたいてみます。
$ ./force Usage: force <command> [<args>] Available commands: login force login [-i=<instance>] [<-u=username> <-p=password>] logout Log out from force.com logins List force.com logins used active Show or set the active force.com account whoami Show information about the active account describe Describe the object or list of available objects sobject Manage standard & custom objects bigobject Manage big objects field Manage sobject fields record Create, modify, or view records bulk Load csv file use Bulk API fetch Export specified artifact(s) to a local directory import Import metadata from a local directory export Export metadata to a local directory query Execute a SOQL statement apex Execute anonymous Apex code trace Manage trace flags log Fetch debug logs eventlogfile List and fetch event log file oauth Manage ConnectedApp credentials test Run apex tests security Displays the OLS and FLS for a give SObject version Display current version update Update to the latest version push Deploy artifact from a local directory aura force aura push -resourcepath=<filepath> password See password status or reset password notify Should notifications be used limits Display current limits help Show this help datapipe Manage DataPipes Run 'force help [command]' for details.
簡単ですね。
CLIからForce.comにログインする
続いて、Force.comにログインしてみます。
$ ./force login
ブラウザが開きますので、Salesforceにログインします。
その後に、OAuth認証画面が出ます。Force.com CLIを信用するか?と。今回は信用してあげましょう。
これで、使えるようになりました。コマンドラインから、ブラウザのフォーム出すのは、なかなか簡単ですね。
コマンドラインから顧客一覧を取得する
あとはクエリーをたたけばデータ取れそうです。
$ ./force query "select id,name from account order by name" Id | Name --------------------+-------------------------------------------------------------------------- XXXXXXXXXXVWdn7AAD | (サンプル)株式会社AAAAAAA XXXXXXXXXXVWdn5AAD | (サンプル)株式会社BBBBBBB XXXXXXXXXXVWdn6AAD | (サンプル)CCCCCCC株式会社
ちなみに、このクエリーは、SOQL(Salesforce Object Query Language)というらしい。O/Rマッパー付きのSQLかなぁ。
コンタクトリストに追加する
データが取れたんだから、今度は登録しようってことで、SOQLでInsert文書いてみたら、、、できないっぽい。そこで、調べて見たら、Apexという言語で書けるらしい。Apexは、Force.com上で利用するオブジェクト指向言語だそうです。
んじゃ、コンタクトリストに追加してみましょう。
$ ./force apex >> Start typing Apex code; press CTRL-D when finished try { Account acct = new Account(Name='クラスメソッド株式会社'); insert acct; //自動発行ID ID acctID = acct.ID; //コンタクトの作成 Contact con = new Contact( FirstName='和樹', LastName='植木', Phone='123-1230-1230', AccountId=acctID); //登録 insert con; } catch(DmlException e) { System.debug('An unexpected error has occurred: ' + e.getMessage()); } ^D
登録されたかどうか、CLIで確認します。
$ ./force query "select id,name from contact" Id | Name --------------------+------------------------------------------------- XXXXXXXXXXLOGhIAAX | 植木 和樹
行けたっぽいです。
まとめ
とりあえず、コマンドラインを使ってSalesforceを扱うことができました。CLIから操作できるということは、他システムと連携や自動化が簡単にできるってことですねー。
ところで、未だ利用する画面を見ていない。。。