Java 開発者環境の設定 - resources.docs.salesforce.com · java のインストール ... jre...

14
JAVA 開発者環境の設定 サマリー Java を使用して Salesforce と統合するためのローカル 開発者環境を設定します。 このヒント集には、Salesforce API (SOAP API REST API など) の使用を開始するためのロー カル環境を設定する方法が記載されています。 メモ: Apex、およびカスタムメタデータ API コンポーネントを使用した Salesforce アプリケーション開発用ローカル環境を設定する場合は、Force.com IDE を参照し てください。 このヒント集では、ローカル開発システムのセットアップに必要なツールおよび設定 に重点を置いて説明します。このヒント集では、「API の有効化」権限があるSalesforce 組織がすでに機能していることを前提としています。Developer EditionEnterprise EditionUnlimited EditionPerformance Edition 組織では、デフォルトで API が有効になっています。 まだ Force.com 開発者コミュニティのメンバーでない場合、 developer.salesforce.com/signup にアクセスし、Developer Edition 組織のサイン アップの説明に従ってください。すでに Enterprise EditionUnlimited Edition、または Performance Edition を所有している場合でも、組織の使用中のデータを保護するために、 サンプルデータに対するソリューションの開発、ステージングおよびテストには Developer Edition を使用します。これは、特に、(データをただ参照するだけのアプリ ケーションに対し) データを挿入、更新または削除するアプリケーションの場合に該 当します。 Salesforce 組織があれば開発に使用できますが、開発およびテスト用の Sandbox を設定 する必要があります。Develper Sandbox の作成手順は、『Application Lifecycle Guide』の「開 発環境」を参照してください。 Java のインストール Salesforce API を使用するには、Java 開発者キット (JDK) バージョン 5.0 以降を使用する必 要があります。Java は、広く使用されている堅牢なクロスプラットフォーム言語で、 Salesforce とうまく統合します。 JDK をインストールするには、インターネットに接続された WindowsMac OS X または Linux システムが必要です。システムによっては、JDK をインストールするのにシステ ム管理者レベルのアクセス権も必要になる場合があります。 メモ: すでに JDK がインストールされている場合、JDK インストールの確認」 に記載されている手順を実行して、Java のバージョンを確認してください。Mac OS X および Linux のほとんどのバージョンには、特定のバージョンの JDK があら かじめインストールされています。 JDK は、Java アプリケーションを作成するのに必要な開発キットです。JDK には、Java アプリケーションを実行するのに必要なJava ランタイム環境(JRE) が含まれています。 最終更新日: 2017/08/18

Transcript of Java 開発者環境の設定 - resources.docs.salesforce.com · java のインストール ... jre...

JAVA 開発者環境の設定

サマリーJava を使用して Salesforceと統合するためのローカル開発者環境を設定します。

このヒント集には、Salesforce API (SOAP APIやREST APIなど) の使用を開始するためのローカル環境を設定する方法が記載されています。

メモ: Apex、およびカスタムメタデータ API コンポーネントを使用した Salesforce

アプリケーション開発用ローカル環境を設定する場合は、Force.com IDE を参照してください。

このヒント集では、ローカル開発システムのセットアップに必要なツールおよび設定に重点を置いて説明します。このヒント集では、「APIの有効化」権限があるSalesforce

組織がすでに機能していることを前提としています。Developer Edition、Enterprise Edition、Unlimited Edition、Performance Edition 組織では、デフォルトでAPIが有効になっています。まだ Force.com 開発者コミュニティのメンバーでない場合、developer.salesforce.com/signupにアクセスし、Developer Edition 組織のサインアップの説明に従ってください。すでに Enterprise Edition、Unlimited Edition、またはPerformance Edition を所有している場合でも、組織の使用中のデータを保護するために、サンプルデータに対するソリューションの開発、ステージングおよびテストにはDeveloper Edition を使用します。これは、特に、(データをただ参照するだけのアプリケーションに対し) データを挿入、更新または削除するアプリケーションの場合に該当します。Salesforce 組織があれば開発に使用できますが、開発およびテスト用の Sandbox を設定する必要があります。Develper Sandbox の作成手順は、『Application Lifecycle Guide』の「開発環境」を参照してください。

Java のインストールSalesforce API を使用するには、Java 開発者キット (JDK) バージョン 5.0 以降を使用する必要があります。Java は、広く使用されている堅牢なクロスプラットフォーム言語で、Salesforce とうまく統合します。JDK をインストールするには、インターネットに接続された Windows、Mac OS X またはLinux システムが必要です。システムによっては、JDK をインストールするのにシステム管理者レベルのアクセス権も必要になる場合があります。

メモ: すでに JDK がインストールされている場合、「JDK インストールの確認」に記載されている手順を実行して、Java のバージョンを確認してください。Mac

OS X および Linux のほとんどのバージョンには、特定のバージョンの JDK があらかじめインストールされています。

JDK は、Java アプリケーションを作成するのに必要な開発キットです。JDK には、Java

アプリケーションを実行するのに必要な Java ランタイム環境 (JRE) が含まれています。

最終更新日: 2017/08/18

1. ローカルシステムのブラウザでhttp://www.oracle.com/technetwork/java/javase/downloads/index.htmlに移動します。使用しているオペレーティングシステム用の JDK の最新バージョンをダウンロードします。JRE ではなく JDK をダウンロードしていることを確認します。

2. Windows の場合、インストーラ実行可能ファイルをダブルクリックし、手順に従って JDK と付属の JRE をローカルマシンにインストールします。Mac OS X の場合、.dmg

ファイルを開いてインストーラパッケージをダブルクリックします。Linux の場合、.rpm ファイルをダウンロードした場合、コマンドプロンプトウィンドウで「rpm —ivh JDK インストール RPM ファイル」と入力します。.tar ファイルをダウンロードした場合、tar アーカイブから任意の場所にファイルを抽出します。

3. JDK 実行可能ファイルをパスに追加します。a. Windows の場合、[スタート] > [コントロールパネル] > [システムとセキュリ

ティ] > [システム] > [詳細設定] をクリックします。[環境変数] をクリックし、システム変数の PATH 変数を見つけます。JDK インストールパスの bin フォルダの場所をパス値の最後に追加します。パスは、%SystemRoot%\system32;%SystemRoot%;C:\Program

Files\Java\jdk1.7.0_15\bin のようになります。変更内容を適用するには、[OK] をクリックします。

b. Mac OS X または Linux の場合、$PATH 環境変数を更新する必要があります。Mac

OS X の場合、java_home コマンドを使用して Java パスを設定することもできます。

JDK インストールの確認JDK インストールを確認するには、コマンドプロンプトウィンドウで java —version

と入力します。次のようになります。java version "1.7.0_15"Java(TM) SE Runtime Environment (build 1.7.0_15-b03)Java HotSpot(TM) 64-Bit Server VM (build 23.7-b01, mixed mode)

コマンドプロンプトウィンドウで javac —version と入力して、Java コンパイラが適切にインストールされているかどうかを確認することもできます。出力は次のようになります。javac 1.7.0_15

java または javac が不明な実行可能ファイルであることを示すエラーが発生した場合、インストールが失敗しているか、ステップ 3 で説明されているようにパス環境を設定していない可能性があります。

Eclipse のインストールEclipse は、Java 開発の統合開発環境 (IDE) です。Eclipse では、実行する Java ランタイム環境が必要です。

2

Eclipse のインストールJava 開発者環境の設定

Eclipse は、Salesforce のインテグレーションアプリケーションの開発には必要ありませんが、Salesforce と連携する、使いやすい IDE が必要な場合は Eclipse をインストールしてください。1. ブラウザで http://www.eclipse.org/downloads に移動します。「Eclipse IDE for Java

Developers」をダウンロードします。インストールした JDK のバージョンに応じて、32 ビットバージョンまたは 64 ビットバージョンのいずれかを選択します。

2. ダウンロードしたファイルを任意の場所に解凍します。Eclipse には、特殊なインストールアプリケーションはありません。

3. 解凍した eclipse フォルダの Eclipse 実行可能ファイルを起動します。これは、eclipse.exe (Windows の場合)、Eclipse.app (Mac OS X の場合)、および eclipse

(Linux の場合) になります。新しい eclipse ワークスペースの場所の指定を求められます。[OK] をクリックして、デフォルトのワークスペースの場所を使用します。

4. お知らせページのウィンドウを閉じてお知らせページを終了します。これで Eclipse

ワークベンチが表示され、新しい Java ベースの Salesforce インテグレーションプロジェクトを作成する準備が整いました。

使用する API に基づくパスの選択開発環境を設定する次の手順は、使用する Salesforce API によって異なります。SOAP API、CRUD ベースのメタデータ API、またはその他の WSDL ベースの Salesforce API

を使用するには、次のタスクの手順を実行します。• Web Services Connector のインストール (WSDLベースの API) (ページ 4)

• Developer WSDL ファイルのダウンロード (WSDL ベースの API) (ページ 4)

• Java スタブファイルの生成 (WSDLベースの API) (ページ 5)

• WSDL 環境の確認 (WSDL ベースの API) (ページ 5)

REST API、Bulk API、Chatter API、またはその他の REST ベースの Salesforce API を使用するには、次のタスクの手順を実行します。• HttpClient および JSON フレームワークのインストール (REST ベースの API) (ページ 7)

• 接続アプリケーションへのアクセスの設定 (REST ベースの API) (ページ 7)

• REST 環境の確認 (REST ベースの API) (ページ 12)

Tooling API には、SOAP および REST ベースのインターフェースが用意されており、必要に応じて上記のパスのいずれかを使用して環境を設定できます。ストリーミング APIでは、プッシュ技術をサポートするために追加の Java フレームワークをインストールする必要があります。『Force.com Streaming API 開発者ガイド』の「例:

Java クライアント」を参照してください。

3

使用する API に基づくパスの選択Java 開発者環境の設定

Web Services Connector のインストール (WSDLベースの API)Force.com Web Services Connector (WSC) は、WSDL ベースの Salesforce API を使いやすくする高パフォーマンスランタイムフレームワークです。WSC フレームワークを使用するには、Java JDK のインストールが機能している必要があります。1. ブラウザで http://mvnrepository.com/artifact/com.force.api/force-wsc に移動し、使用して

いる Salesforce の API バージョンと一致する、組み込みの WSC .jar ファイルをダウンロードします。使用している API バージョンと連携する、組み込みの WSC バージョンが見つからない場合、ソースから .jar ファイルを作成できます。https://github.com/forcedotcom/wsc に移動し、「Building WSC」の手順を実行してください。

2. WSC .jar ファイルを任意の場所に保存します。これを使用して、Salesforce 組織からWSDL のスタブファイルを生成します。

3. 使用している WSC のバージョンによっては、追加のフレームワークもダウンロードする必要があります。次のフレームワークをダウンロードし、フレームワークの .jar ファイルを抽出して任意の場所にコピーします。• Rhino JavaScript フレームワーク

(https://developer.mozilla.org/en-US/docs/Rhino/Download_Rhino から入手可能)

• StringTemplate エンジンフレームワーク (http://www.stringtemplate.org/download.html

から入手可能)

Developer WSDL ファイルのダウンロード (WSDL ベースの API)Salesforce Web サービス定義言語 (WSDL) ファイルでは、API をコールするために開発者環境で使用する API の詳細が提供されます。Salesforce 組織から直接 WSDL ファイルをダウンロードする手順は、次のとおりです。1. ブラウザで Salesforce Developer Edition 組織にログインします。2. [設定] から、[クイック検索] ボックスに「API」と入力し、[API] を選択します。3. 使用する API に適した WSDL ファイルをダウンロードします。

a. SOAP API を使用する場合、Enterprise または Partner WSDL が必要です。ダウンロードする WSDL を判断する方法については、『SOAP API 開発者ガイド』の「WSDL

の選択」を参照してください。b. メタデータ API を使用する場合、Metadata WSDL が必要です。ログインして

Salesforce で認証するには、Enterprise または Partner WSDL も必要です。c. Tooling API を使用する場合、Tooling WSDL が必要です。ログインして Salesforce で

認証するには、Enterprise または Partner WSDL も必要です。

4

Web Services Connector のインストール (WSDLベースのAPI)

Java 開発者環境の設定

Java スタブファイルの生成 (WSDLベースの API)WSDL ベースの Salesforce API と Java を併用するには、Java プロジェクトで使用できる .jar

スタブファイルを生成する必要があります。スタブファイルを生成するには、WSC .jar ファイルが必要です。使用する予定の API に適した WSDL ファイルをダウンロードする必要もあります。1. コマンドプロンプトウィンドウを開き、WSDL および WSC .jar ファイルがある場所

に移動します。2. コマンドプロンプトウィンドウで java –classpath WSC JAR のパス/WSC JAR

ファイル名 com.sforce.ws.tools.wsdlc WSDL のパス/WSDL ファイル名 出力スタブ JAR のパスおよびファイル名 コマンドを使用して、WSDL の Java スタブを生成します。場合によっては、WSC で必要な追加の .jar ファイル (Rhino や StringTemplate

など) をセミコロン (Windows の場合) またはコロン (Mac/Linux の場合) 区切りでclasspath リストに含める必要もあります。Rhino および StringTemplate についての詳細は、「Web Services Connector のインストール (WSDLベースの API)」を参照してください。

次に、API バージョン 29.0 WSC および Enterprise WSDL を使用して、スタブ .jar ファイル「enterprise_stub.jar」を生成するための Windows コマンドの例を示します。java -classpath \testWorkspace\wsc\force-wsc-29.0.0.jar;\testWorkspace\rhino1_7R4\js.jar;\testWorkspace\stringTemplate\ST-4.0.7.jar;\jdk\jdk1.7.0_17\lib\tools.jarcom.sforce.ws.tools.wsdlc\testWorkspace\wsdl\enterprise.wsdl\testWorkspace\stub\enterprise_stub.jar

この例の classpath には、Rhino および StringTemplate の連動 .jar ファイルが含まれています。

WSDL 環境の確認 (WSDL ベースの API)Eclipse で簡単な Java テストアプリケーションを使用して開発者環境を検証できます。JDK、Eclipse、および WSC がインストールされていて、使用する WSDL ファイルの Java

スタブ .jar ファイルが生成されている必要があります。検証手順を実行するには、Enterprise または Partner WSDL のスタブ .jar ファイルが必要です。1. Eclipse を実行します。[File (ファイル)] > [New (新規)] > [Java Project (Java プロジェク

ト)] をクリックして、プロジェクトに SF-WSC-Test という名前を付けます。2. WSC およびスタブ .jar ファイルをプロジェクトに追加します。[Project (プロジェク

ト)] > [Properties (プロパティ)] > [Java Build Path (Java 作成パス)] > [Libraries (ライブラリ)]をクリックして [Add External JARs (外部 JAR を追加)]をクリックし、WSC およびスタブ .jar ファイルを選択して [OK] をクリックします。

5

Java スタブファイルの生成 (WSDLベースの API)Java 開発者環境の設定

3. 新しいフォルダを srcフォルダに追加します。これを行うには、srcを右クリックして、[New (新規)] > [Folder (フォルダ)]を選択し、フォルダ名として wscを使用します。

4. 新しいクラスを作成します。これを行うには wsc を右クリックして、[New (新規)] >

[Class (クラス)] を選択します。クラスに Main という名前を付けます。5. Eclipse で生成される Main.javaのコードを次のセクションで説明されているよう

に置き換えます。Main.java クラスの次の簡単なログインコード例を使用します。YOUR DEVORG USERNAME

を Developer Edition 組織のユーザ名で置き換え、YOUR DEVORG PASSWORD AND

SECURITY TOKEN を Developer Edition 組織のパスワードとセキュリティトークンで置き換えます。組織でセキュリティトークンを設定していない場合、パスワードのみを入力します。このコードの GitHub Gist は、https://gist.github.com/anonymous/78864d2c4ccfe4e983ef で入手できます。package wsc;

import com.sforce.soap.enterprise.Connector;import com.sforce.soap.enterprise.EnterpriseConnection;import com.sforce.ws.ConnectionException;import com.sforce.ws.ConnectorConfig;

public class Main {static final String USERNAME = "YOUR DEVORG USERNAME";static final String PASSWORD = "YOUR DEVORG PASSWORD AND SECURITY

TOKEN";static EnterpriseConnection connection;

public static void main(String[] args) {

ConnectorConfig config = new ConnectorConfig();config.setUsername(USERNAME);config.setPassword(PASSWORD);

try {

connection = Connector.newConnection(config);

// display some current settingsSystem.out.println("Auth EndPoint:

"+config.getAuthEndpoint());System.out.println("Service EndPoint:

"+config.getServiceEndpoint());System.out.println("Username: "+config.getUsername());System.out.println("SessionId: "+config.getSessionId());

} catch (ConnectionException e1) {e1.printStackTrace();

}}

}

6

WSDL 環境の確認 (WSDL ベースの API)Java 開発者環境の設定

次の出力は、このコードの実行の一般的な成功例です。Auth EndPoint: https://login.salesforce.com/services/Soap/c/27.0Service EndPoint:https://yourInstance.salesforce.com/services/Soap/c/27.0/00DU0000000L5f0Username: [email protected]: 00DU0000000Q5f0!ARoAQDjpkH.NReBp_vBLZ124aDbgYM_v7so9ciUu

検証用の Java プロジェクトを実行して、組織に一致する出力が表示された場合、開発者環境が設定されており、Salesforceと統合する Java アプリケーションの開発を開始できます。

HttpClient および JSON フレームワークのインストール (REST ベースの API)REST リソースにアクセスするには、HttpClient および JSON フレームワークをインストールする必要があります。HttpClient を使用すると、HTTP リソースにアクセスできます。JSON フレームワークを使用すると、JSON 要求や応答データを生成および解析できます。HttpClient および JSON フレームワークを使用するには、ローカルシステムに JDK をインストールする必要があります。1. ブラウザで http://hc.apache.org/downloads.cgi に移動し、最新の「GA」バージョンの

HttpClient のバイナリアーカイブをダウンロードします。ダウンロードしたファイルを解凍し、ディレクトリを任意の場所に移動します。

2. ブラウザで http://mvnrepository.com/artifact/org.json/json に移動し、最新のバイナリ .jar

ファイルをダウンロードします。この .jar ファイルを任意の場所にコピーします。

接続アプリケーションへのアクセスの設定 (REST ベースの API)Salesforce REST API では、OAuth 認証が使用されるため、接続アプリケーションを作成して、アプリケーションと Salesforce を統合する必要があります。接続アプリケーションは、API を使用してアプリケーションを Salesforce と統合します。接続アプリケーションは、標準の SAML および OAuth プロトコルを使用して認証し、シングルサインオンと Salesforce API で使用するトークンを提供します。接続アプリケーションでは、標準の OAuth 機能に加え、Salesforce システム管理者がさまざまなセキュリティポリシーを設定したり、対応するアプリケーションを使用できるユーザを明示的に制御したりすることができます。新規接続アプリケーションウィザードに従って、接続アプリケーションを作成します。• Lightning Experience では、アプリケーションマネージャを使用して接続アプリケー

ションを作成します。[設定] から、[クイック検索] ボックスに「アプリケーション」

7

HttpClient および JSON フレームワークのインストール(REST ベースの API)

Java 開発者環境の設定

と入力し、[アプリケーションマネージャ] を選択します (1)。[新規接続アプリケーション] をクリックします (2)。

• Salesforce Classic では、[設定] から、[クイック検索] ボックスに「アプリケーション」と入力し、[アプリケーション] を選択します。[接続アプリケーション] で、[新規]

をクリックします。次に、アプリケーションに関する基本情報を指定します。1. 接続アプリケーション名を入力します。この名前はアプリケーションマネージャ

に表示されるほか、そのアプリケーションランチャーのタイルに表示されます。

メモ: 接続アプリケーション名は、組織内の接続アプリケーションで一意である必要があります。接続アプリケーションが Spring '14 以降のリリースを使用して作成された場合は、削除済み接続アプリケーションの名前を再使用できるようになりました。

2. プログラムからアプリケーションを参照するときに使用する API 参照名を入力します。API 参照名は、デフォルトの空白を除いた名前になります。使用できるのは、文字、数字、アンダースコアのみであるため、元のアプリケーション名に他の記号などが含まれている場合は、デフォルトの名前を編集します。

3. Salesforce がアプリケーション提供者またはそのサポートチームへの連絡時に使用する連絡先メールを入力します。このアドレスは、アプリケーションをインストールする Salesforce システム管理者には提供されません。

4. Salesforce から連絡する必要がある場合に使用する連絡先電話番号を入力します。この番号は、アプリケーションをインストールする Salesforce システム管理者には提供されません。

5. アプリケーションランチャーのタイルにロゴを表示するために使用するロゴ画像の URL を入力します。これは、認証時にユーザに表示される同意ページにも表示されます。URL には HTTPS を使用する必要があります。GIF、JPG、または PNG ファイルを使用してください。ファイルサイズについては 20 KB 未満をお勧めします(上限 100 KB)。画像サイズは 128 x 128 ピクセルに変更されます。適切に表示されることを確認してください。ロゴを指定しない場合は、Salesforce でアプリケーションのイニシャルを使用してロゴを自動的に生成します。• [ロゴ画像をアップロード]をクリックして、独自のロゴ画像をアップロードで

きます。ローカルファイルシステムからロゴのサイズ要件を満たす画像を選択します。アップロードが成功すると、ロゴへの URL が [ロゴ画像 URL] 項目に表示されます。表示されない場合は、ロゴのサイズ要件を満たしていることを確認します。

• [いずれかのサンプルロゴを選択] をクリックして、Salesforce のサンプルからロゴを選択することもできます。Salesforce アプリケーション、サードパーティアプリケーション、標準化団体のロゴなどが含まれます。目的のロゴをクリックし、URL をコピーして [ロゴ画像 URL] 項目に貼り付けます。

• [ドキュメント] タブを使用して画像をドキュメントとしてアップロードすることで、Salesforce サーバで公開されてホストされるロゴを使用できます。画像を表示して URL を取得し、その URL を [ロゴ画像 URL] 項目に入力します。

8

接続アプリケーションへのアクセスの設定 (REST ベースの API)

Java 開発者環境の設定

6. アプリケーションについての詳細が記載された Web ページがある場合、情報 URL

を入力します。7. 接続アプリケーションのアプリケーションランチャーのタイルに表示する説明を

入力します (最大 256 文字)。説明を入力しない場合、タイルには名前のみが表示されます。

次に OAuth を設定します。これを行うには、[OAuth 設定の有効化] を選択して、次の情報を指定します。1. TV、アプライアンス、またはコマンドラインアプリケーションなど、入力機能や

表示機能が制限されたデバイスのアプリケーションで OAuth を設定する場合、[デバイスフローで有効化] を選択します。

メモ: 有効にした場合、独自の URL を指定しない限り、コールバック URL の値はデフォルトのプレースホルダになります。これと同じコンシューマが別のフローで使用されている場合などに、必要に応じて独自のコールバック URL

を指定できます。コールバック URL はデバイスの認証フローでは使用されません。

2. Salesforce が OAuth 時にアプリケーションにコールバックするコールバック URL (エンドポイント) を入力します。これは OAuth リダイレクト URI です。通常、この URL は、認証が成功した後にユーザのブラウザがリダイレクトされるURL であり、使用する OAuth フローによって決まります。この URL は一部の OAuth

フローでアクセストークンを渡すために使用されるため、URL でセキュア HTTPS またはカスタム URI スキームを使用する必要があります。複数のコールバック URL を入力すると、実行時に Salesforce は、アプリケーションで指定されたコールバックURL の値を [コールバック URL] のいずれかの値と照合します。検証テストに通過するには、いずれか 1 つの値と一致する必要があります。

3. JWT OAuth フローを使用している場合は、[デジタル署名を使用] を選択します。アプリケーションが証明書を使用する場合は、[ファイルを選択] をクリックして、証明書のシステムを参照します。

4. [選択した OAuth 範囲] で、サポートされる OAuth 範囲を追加します。これらの範囲とは、実行中の接続アプリケーションにユーザが付与する権限を示します。OAuth

トークン名は括弧で囲みます。Chatter フィードへのアクセスと管理 (chatter_api)

Chatter REST API リソースへのアクセスのみを許可します。データへのアクセスと管理 (api)

REST API や Bulk API などの API を使用したログインユーザの取引先へのアクセスを許可します。この値には、Chatter REST API リソースへのアクセスを許可するchatter api も含まれます。

基本情報へのアクセス (id、profile、email、address、phone)

ID URL サービスへのアクセスを許可します。

9

接続アプリケーションへのアクセスの設定 (REST ベースの API)

Java 開発者環境の設定

カスタム権限へのアクセス (custom_permissions)

接続アプリケーションに関連付けられた組織内のカスタム権限へのアクセスを許可します。これは、現在のユーザの各権限が有効になっているかどうかを示します。

一意の識別子へのアクセスを許可 (openid)

ログインユーザの OpenID Connect アプリケーションの一意の識別子へのアクセスを許可します。

フルアクセス (full)

ログインユーザのデータへのアクセスを許可し、その他すべての範囲が対象となるようにします。full は更新トークンを返しません。更新トークンを取得するには、refresh_token の範囲を明示的に要求する必要があります。

ユーザに代わっていつでも要求を実行 (refresh_token、offline_access)

更新トークンを受け取る資格がアプリケーションにある場合に、更新トークンを返すことを許可します。ユーザがオフラインのときに、アプリケーションはこの範囲を使用してユーザのデータを操作できます。refresh_token 範囲は、offline_access と同じです。

カスタムアプリケーションへのアクセスの提供 (visualforce)

Visualforce ページへのアクセスを許可します。Web 経由のデータへのアクセスを提供 (web)

Web で access_token を使用することを許可します。これには Visualforce が含まれているため、Visualforce ページへのアクセスが許可されます。

5. クライアントアプリケーションに対して OAuth を設定する場合、そのクライアントアプリケーションがクライアントの秘密を保持できず、かつユーザエージェントフローを使用できないために Web サーバフローを使用する必要があるときは、[Web サーバフローの秘密が必要] を選択解除します。アプリケーション用にクライアントの秘密は依然として生成されますが、この設定でアクセストークン要求内の client_secret パラメータが不要であることを Web サーバフローに指示します。アプリケーションでユーザエージェントフローを使用できる場合は、秘密を使用しない Web サーバフローよりもセキュアなオプションとしてユーザエージェントをお勧めします。

6. OAuth 要求で ID トークンを処理する方法を制御するには、[ID トークンを含める]を選択します。OAuth 要求に [一意の識別子へのアクセスを許可 (openid)] 範囲が含まれる場合、返されるトークンに ID トークンが含まれる可能性があります。• ID トークンはアクセストークン応答に常に含まれます。• プライマリ ID トークン設定を有効にした状態で、アクセストークン応答と更新

トークン応答の両方で ID トークンコンテンツを制御するセカンダリ設定を構成します。少なくとも 1 つの設定を選択します。標準要求を含める

ユーザの名前、プロファイル、電話番号、住所など、ユーザに関する情報を含む標準要求を含めます。「OpenID Connect の仕様」では、ID トークンで返される、一連の標準要求が定義されます。

10

接続アプリケーションへのアクセスの設定 (REST ベースの API)

Java 開発者環境の設定

カスタム属性を含めるアプリケーションでカスタム属性を指定した場合は、そのカスタム属性をID トークンに含めます。

カスタム権限を含めるアプリケーションでカスタム権限を指定した場合は、そのカスタム権限をID トークンに含めます。

7. ユーザが ID プロバイダとして Salesforce からログアウトしたら、接続アプリケーションサービスプロバイダから自動的にログアウトできるようにするには、[シングルログアウトを有効化] を選択します。

8. [シングルログアウトを有効化]を選択した場合、シングルログアウト URL を入力します。これは、ユーザが Salesforce からログアウトするときに Salesforce がログアウト要求を送信する場所です。シングルログアウト URL は、https:// で始まる絶対 URL

にする必要があります。9. 接続デバイスのアセットトークンを発行するようにアプリケーションを設定する

場合、アセットトークンの設定を行うには、[アセットトークンを有効化] を選択します。• 次の設定を指定します。

トークンの有効期間アセットトークンの発行後、アセットトークンが有効な期間。

アセット署名証明書アセットトークンを署名するためにすでに作成している自己署名証明書。

アセット利用者アセットトークンの対象コンシューマ。例: 接続デバイスのバックエンドサービス (https://your_device_backend.com など)。

カスタム属性を含めるアプリケーションでカスタム属性を指定した場合は、そのカスタム属性をアセットトークンに含めます。

カスタム権限を含めるアプリケーションでカスタム権限を指定した場合は、そのカスタム権限をアセットトークンに含めます。

• コールバック URL (エンドポイント) を指定します。たとえば、https://your_device_backend.com/callback です。

• アセットトークンで必要とされる OAuth 範囲を選択したことを確認します。– データへのアクセスと管理 (api)

– 一意の識別子へのアクセスを許可 (openid)

ページレイアウトの編集が終了したら、[保存]をクリックします。これでアプリケーションの公開、追加修正、削除ができるようになります。OAuth を使用している場合、アプリケーションを保存すると、アプリケーションが Salesforce との通信に使用する新しい 2 つの値が付与されます。

11

接続アプリケーションへのアクセスの設定 (REST ベースの API)

Java 開発者環境の設定

• コンシューマ鍵: コンシューマがSalesforceに自身の身分を証明するために使用する値。OAuth 2.0 では client_id と呼ばれます。

• コンシューマの秘密: コンシューマがコンシューマキーの所有権を確立するために使用する秘密。OAuth 2.0 では client_secret として参照されます。

接続アプリケーションについての詳細は、Salesforceオンラインヘルプの「接続アプリケーションの作成」を参照してください。

REST 環境の確認 (REST ベースの API)Eclipse で簡単な Java テストアプリケーションを使用して開発者環境を検証できます。JDK、Eclipse、HttpClient、および JSON フレームワークがインストールされている必要があります。1. Eclipse を実行します。[File (ファイル)] > [New (新規)] > [Java Project (Java プロジェク

ト)] をクリックして、プロジェクトに「SF-REST-Test」という名前を付けます。2. [Project (プロジェクト)] > [Properties (プロパティ)] > [Java Build Path (Java 作成パス)] >

[Libraries (ライブラリ)] をクリックして、[Add External JARs] をクリックします。HttpClient .jar ファイル (httpclient、httpcore、commons-codec、commons-logging) を追加します。.jar ファイルのファイル名にはバージョン情報が付加されます。JSON .jar ファイルを追加します。この .jar ファイルのファイル名にもバージョン番号が付加される場合があります。

3. 新しいフォルダを srcフォルダに追加します。これを行うには、srcを右クリックして、[New (新規)] > [Folder (フォルダ)]を選択し、フォルダ名として sfdc_rest

を使用します。4. 新しいクラスを作成します。これを行うには sfdc_restを右クリックして、[New

(新規)] > [Class (クラス)] を選択します。クラスに Main という名前を付けます。5. Eclipse で生成される Main.javaのコードを次のセクションで説明されているよう

に置き換えます。Main.java クラスの次の簡単なログインコード例を使用します。YOUR DEVORG USERNAME

を Developer Edition 組織のユーザ名で置き換え、YOUR DEVORG PASSWORD + SECURITY

TOKENを Developer Edition 組織のパスワードとセキュリティトークンで置き換えます。組織でセキュリティトークンを設定していない場合、パスワードのみを入力します。YOUR OAUTH CONSUMER KEY を Developer Edition 組織の接続アプリケーションのコンシューマキーで置き換えます。YOUR OAUTH CONSUMER SECRETを Developer Edition 組織の接続アプリケーションのコンシューマの秘密で置き換えます。このコードの GitHub

Gist は、https://gist.github.com/anonymous/fcb1bc36ef50c0efbeb5 で入手できます。package sfdc_rest;

import java.io.IOException;

import org.apache.http.client.methods.HttpPost;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.HttpResponse;import org.apache.http.HttpStatus;

12

REST 環境の確認 (REST ベースの API)Java 開発者環境の設定

import org.apache.http.util.EntityUtils;import org.apache.http.client.ClientProtocolException;

import org.json.JSONObject;import org.json.JSONTokener;import org.json.JSONException;

public class Main {

static final String USERNAME = "YOUR DEVORG USERNAME";static final String PASSWORD = "YOUR DEVORG PASSWORD + SECURITY

TOKEN";static final String LOGINURL = "https://login.salesforce.com";

static final String GRANTSERVICE ="/services/oauth2/token?grant_type=password";

static final String CLIENTID = "YOUR OAUTH CONSUMER KEY";static final String CLIENTSECRET = "YOUR OAUTH CONSUMER SECRET";

public static void main(String[] args) {

DefaultHttpClient httpclient = new DefaultHttpClient();

// Assemble the login request URLString loginURL = LOGINURL +

GRANTSERVICE +"&client_id=" + CLIENTID +"&client_secret=" + CLIENTSECRET +"&username=" + USERNAME +"&password=" + PASSWORD;

// Login requests must be POSTsHttpPost httpPost = new HttpPost(loginURL);HttpResponse response = null;

try {// Execute the login POST requestresponse = httpclient.execute(httpPost);

} catch (ClientProtocolException cpException) {// Handle protocol exception

} catch (IOException ioException) {// Handle system IO exception

}

// verify response is HTTP OKfinal int statusCode =

response.getStatusLine().getStatusCode();if (statusCode != HttpStatus.SC_OK) {

System.out.println("Error authenticating to Force.com:"+statusCode);

// Error is in EntityUtils.toString(response.getEntity())

return;}

13

REST 環境の確認 (REST ベースの API)Java 開発者環境の設定

String getResult = null;try {

getResult = EntityUtils.toString(response.getEntity());} catch (IOException ioException) {

// Handle system IO exception}JSONObject jsonObject = null;String loginAccessToken = null;String loginInstanceUrl = null;try {

jsonObject = (JSONObject) newJSONTokener(getResult).nextValue();

loginAccessToken = jsonObject.getString("access_token");loginInstanceUrl = jsonObject.getString("instance_url");

} catch (JSONException jsonException) {// Handle JSON exception

}System.out.println(response.getStatusLine());System.out.println("Successful login");System.out.println(" instance URL: "+loginInstanceUrl);System.out.println(" access token/session ID:

"+loginAccessToken);

// release connectionhttpPost.releaseConnection();

}}

次の出力は、このコードの実行の一般的な成功例です。HTTP/1.1 200 OKSuccessful logininstance URL: https://yourInstance.salesforce.comaccess token/session ID:

00DU0000000L5SPxa1XFi0rwB16YCQ.Xyv2nKiCT8iIN9_nkKQJ3UUf

検証用の Java プロジェクトを実行して、組織に一致する出力が表示された場合、開発者環境が設定されていて、Salesforce REST API と統合する Java アプリケーションの開発を開始できます。

14

REST 環境の確認 (REST ベースの API)Java 開発者環境の設定