Blogical

AWS/Salesforceを中心に様々な情報を配信していきます(/・ω・)/

Salesforce Rest API連携用 Javaプログラム(Eclipse IDE) 設定(1) - 接続アプリケーション作成

おはようございます。ロジカル・アーツ株式会社のSE 輪島 幸治です。

Eclipse IDEを使用して、JavaプログラムからSalesforceに連携するプログラム作成方法をご紹介させて頂きます。 既存のJava開発プロジェクトでのSalesforce連携などにご検討下さい。

この記事では、Salesforce側の接続アプリケーション作成について取り扱います。

Salesforceを使用したソフトウェア開発について

さて、Salesforceでソフトウェア開発を行う場合、ビジネスロジック開発では、Javaに似たApexというプログラミング言語を使用することができます。このため、Salesforce開発者は、Javaでなく、Apexを使用して開発が行われています。

trailhead.salesforce.com

一方で、 ソフトウェア開発のプログラミング言語の人気ランキングを見てみましょう。 ソフトウェア開発においては、Javaが人気のプログラミング言語の一つである一方で、 Apexは48位です*1。 このため、ソフトウェア開発の現場においては、Javaが多く使用されていることが分かります。

atmarkit.itmedia.co.jp

SalesforceCRMやコールセンターアプリケーションだけでなくカスタムオブジェクトを使用したクラウドデータベースとして使用することもできます。 また、Salesforceで接続アプリケーションの設定やIDEでライブラリ設定をすることで、 Javaを使用して、Salesforceと連携するプログラムを作成することができます。

人気のプログラミング言語であるJavaを使用してクラウドアプリケーション開発を行いたい場合などに、Salesforceを使用するのはいかがでしょうか。Javaプログラムで連携プログラムの作成方法は、Salesforceの開発者ドキュメントに Salesforce側の接続アプリケーションの設定や、使用ライブラリ、サンプルコードが用意されています。

developer.salesforce.com

Salesforceの開発者ドキュメントのSalesforce Rest API連携は文章ベースです。また、検証時点においては、一部のJavaライブラリについては、旧バージョンを使用する必要がありました。 このため、このブログ記事では、開発者ドキュメントを補足する記事として、 Javaプログラムの開発者向けに画像付きで、ライブラリの取得方法などについて記載させて頂きます。

記事で使用するユーザーインターフェースについて

Salesforceには、Salesforce ClassicとLightning Experienceという大きく分けて2種類のユーザーインターフェースがあります。 このブログ記事の説明画面では、以前から使用されてきたSalesforce Classicのユーザーインターフェースを使用しています。

2021年時点で最新版のインターフェースであるLightning Experienceを使用しているユーザも多くなってきましたが、この記事では、SaaS機能よりもJavaプログラムと連携するクラウドデータベースとしての利用することを想定しています。 このため、Salesforce初心者、あるいはいままで他のシステムを使用してきたユーザでも設定が確認しやすいSalesforce Classicのユーザーインターフェースにてご説明させて頂きます。

trailhead.salesforce.com

Java 開発者環境の設定

それでは、設定手順を説明させて頂きます。 Javaプログラムで、REST APIを使用してSalesforceのオブジェクトにアクセスするためには、 Salesforce側の設定で、接続アプリケーション作成が必要です。

接続アプリケーションの詳細設定については、公式ヘルプが用意されております。 この記事では、REST APIを使用してSalesforceに接続する 接続アプリケーションへのアクセスの設定をご紹介させて頂きます。

SALESFORCE ヘルプ - 接続アプリケーションの基本設定

接続アプリケーションの作成

まず、Salesforceにログインして、[Setup] > [作成] > [アプリケーション]にある接続アプリケーションセクションの[新規]を押下します。*2

f:id:logicalarts:20210528225524p:plain
(図1)

新規接続アプリケーションの作成画面にて、基本情報及びAPI (OAuth 設定の有効化)の項目を入力して、[保存]を押下します。

f:id:logicalarts:20210528225540p:plain
(図2)

基本情報:

項目名 項目値
接続アプリケーション名 eclipse_app
API 参照名 eclipse_app
取引先責任者 メール logical2021webapp@gmail.com

API (OAuth 設定の有効化):

項目名 項目値
OAuth 設定の有効化 チェック
コールバック URL https://login.salesforce.com/services/oauth2/callback
選択した OAuth 範囲 選択した OAuth 範囲に移動
Web サーバフローの秘密が必要 チェック
更新トークンフローの秘密が必要 チェック

選択した OAuth 範囲については、クライアントからアクセスできるリソースの種別を設定します。 図2の画面では,すべてのリソースの種別を割り当てています。 リソースの割り当てをしたい場合は、割り当てたいリソースを利用可能な OAuth 範囲から選択した OAuth範囲に移動させて下さい。すべてのアクセス権を付与するだけであれば、「フルアクセス (full)」という値があります。 リソースの値の詳細については、下記のヘルプページにあるOAuth 範囲をご確認下さい。

SALESFORCE ヘルプ - OAuth トークンおよび範囲

[保存]を押下すると図3で「新規アプリケーションを使用する前に、サーバ上で変更が有効になるまで2 ~ 10 分お待ちください。」画面が表示されるので、確認して[次へ]を押下します

f:id:logicalarts:20210528230216p:plain
(図3)

[次へ]を押下すると、図4にて作成された接続アプリケーションの画面が表示されるので、バージョンやAPI参照名、API (OAuth 設定の有効化)のセクション箇所を確認します。

f:id:logicalarts:20210528230237p:plain
(図4)

コンシューマの秘密を表示させ、Javaのプログラムにて使用するコンシューマ鍵、コンシューマの秘密を保存しておきます。

f:id:logicalarts:20210528230252p:plain
(図5)

Javaのプログラムにて使用する値:

項目名 項目値
コンシューマ鍵 3MVG95mg0lk4batiz.KTeb.8Ib4zWn9YRcuqpM5DRPhrUKVQ29foE2zPWfJwHD726Qx_wWz_d0Jxlx_TjHsaN
コンシューマの秘密 0B740608A790B2E3F58CCDF02D43D085FFEC65594F6D8EF7ECCCFEABDF3CD2FC

[Manage]を押下します。

f:id:logicalarts:20210528230306p:plain
(図6)

接続アプリケーションの詳細画面が表示されますので、[ポリシーを編集]を押下します。

f:id:logicalarts:20210528230323p:plain
(図7)

JavaのプログラムからSalesforceに接続する際に使用するSalesforceユーザが接続アプリケーションを使用できるように、 OAuthの設定を行います。許可されているユーザ項目に管理者が承認したユーザは事前承認済み、IP制限の緩和項目にIP制限の緩和項目を設定します。

f:id:logicalarts:20210528230345p:plain
(図8)

項目名 項目値
許可されているユーザ 管理者が承認したユーザは事前承認済み
IP 制限の緩和 IP 制限の緩和

管理者が承認したユーザのプロファイルを設定するために、プロファイルセクションの[プロファイルを管理する]を押下します。

f:id:logicalarts:20210528230402p:plain
(図9)

アプリケーションプロファイルの割り当て画面にて、システム管理者にチェックを入れて、[保存]を押下します。

f:id:logicalarts:20210528230418p:plain
(図10)

プロファイルセクションに、システム管理者プロファイルが設定されていることが確認できます。

f:id:logicalarts:20210528230432p:plain
(図11)

まとめ

以上で、JavaプログラムからSalesforceRest API連携を使用して接続するための接続アプリケーション作成は完了です。

Eclipse IDEからSalesforceJavaを使用してRest APIで連携するためには、Javaプロジェクトの作成する際に、使用ライブラリをインポートする必要があります。

続きは、Salesforce Rest API連携用 Javaプログラム(Eclipse IDE) 設定(2) - 使用ライブラリ(外部JARファイル)の用意にてご紹介させて下さい。

連携できるようになると、既存のエンタープライズアプリケーションで 数多く使用されているJava言語から、SalesforceRest APIで連携が行えるようになります。

よろしくお願いいたします。

この記事について

この記事は、著者が独自に調査した結果を、ロジカル・アーツ株式会社のブログにて記事化したものです。 記載されている手順やアドレスなどは、予告なく変更される場合もあります。

この記事に記載されている会社名、商品名などは一般に各社の商標または登録商標です。 なお、本文中には、™、®を明記しておりません。

クラウドアプリケーションは、成長が著しいため、機能更新も早いです。 記事に至らない箇所もあると思いますが、お気付きの点がありましたら弊社やアプリケーション提供元ベンダー、 アプリケーション提供元ベンダーのパートナーなどにお問い合わせ下さい。

よろしくお願いいたします。

*1:TIOBE Index for August 2021 : https://www.tiobe.com/tiobe-index/

*2:Salesforceに接続するにはSalesforce組織が必要です。Trailhead PlaygroundやDeveloper Editonを取得して作成するなどしてSalesforce組織をご用意下さい。

trailhead.salesforce.com

Developer Edition サインアップ手順 | Developer Force Blog