Skip to content

JunNakamura/sfsample

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

What is this ?

Force.com APIを使ったサンプルコード. 主にsoap apiのサンプルを作成

prerequisite

jdk 1.8 or later.

APIの種類

主なものは以下のもの

  • REST API
  • SOAP API
  • Bulk API
  • Metadata API

どのAPIを使用すべきか

https://help.salesforce.com/articleView?id=integrate_what_is_api.htm&language=ja&type=0

SOAP API

http://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/SF_Soap_API_cheatsheet_web.pdf

事前準備

セキュリティトークンの発行

ログイン後、画面右上に、ユーザ名がある。そこから、 「私の設定」>「個人用」>「私のセキュリティートークンのリセット」 で、トークンのリセット画面に遷移

_ui/system/security/ResetApiTokenEdit?retURL=%2Fui%2Fsetup%2FSetup%3Fsetupid%3DPersonalInfo&setupid=ResetApiToken

WSDLからのclient-side codeの生成

  1. Enterprise
  2. Partner
  3. Metadata

の3つがある。上記リンクからwsdlをダウンロードする。(main/resourcesに保持している) wsdlから追加されたカスタムオブジェクト、カスタムフィールドに対応するテーブルやカラムの情報を取得し、対応するJavaクラスが生成される。 (コードで指定しているオブジェクトがないときはsalesforceアプリにログインして適宜作成すればよい)

force-wsc のソースをビルド or mavenから取得 (build.gradleに依存ライブラリとして記述しているので、それを使える状態にしている)

com.sforce.ws.tools.wsdlc を実行することでstubコードをまとめたjarが生成される。

実行には以下が必要。(gradleで依存ライブラリを取得した場合は ${USER_HOME}/.gradle/以下にある)

antlr-runtime-3.5.jar  force-wsc-39.0.0.jar  ST4-4.0.7.jar  stringtemplate-3.2.1.jar

上記をひとつのディレクトリ(libs)にまとめて、wsdlファイル、作成後のjarファイル名を渡す。

java -cp 'libs/force-wsc-39.0.0.jar:libs/*' com.sforce.ws.tools.wsdlc sfsample/src/resources/enterprise.wsdl enterprise.jar

接続情報

開発アカウントのID(メールアドレス)、パスワード、セキュリティトークンをシステムプロパティ経由で渡す

-DSF_USER=<user_id> -DSF_PASSWORD=<password+security_token>

eclipseなら、実行>実行の構成>引数タブ>VM引数 に記述することで指定できる.

REST API

quick start

https://developer.salesforce.com/docs/atlas.ja-jp.api_rest.meta/api_rest/quickstart_oauth.htm http://resources.docs.salesforce.com/rel1/doc/en-us/static/pdf/SF_Rest_API_cheatsheet_web.pdf

curl https://***instance_name***.salesforce.com/services/data/v20.0/ -H 'Authorization: Bearer access_token'

アクセストークン(セッションID)の取得方法

curl https://login.salesforce.com/services/oauth2/token -d "grant_type=password" -d "client_id=myclientid" -d "client_secret=myclientsecret" 
    -d "username=mylogin@salesforce.com" -d "password=mypassword123456"

セッションIDなので、salesforceアプリにログイン後、sidというcookieの値が該当するので、それで取得してもよい。

Bulk API

https://developer.salesforce.com/docs/atlas.ja-jp.api_asynch.meta/api_asynch/asynch_api_intro.htm

一括クエリ

https://developer.salesforce.com/docs/atlas.ja-jp.api_asynch.meta/api_asynch/asynch_api_using_bulk_query.htm

tool

tips

データの一括削除

1リクエストあたりの処理件数 

参考サイト

Releases

No releases published

Packages

No packages published

Languages