進行状況の追跡を始めよう
Trailhead のホーム
Trailhead のホーム

Heroku での Salesforce REST API の使用

学習の目的

この単元を完了すると、次のことができるようになります。

  • Salesforce REST API の使用事例を理解する。
  • さまざまな種類の認証を理解する。
  • Heroku のアプリケーションで Salesforce REST API を使用する方法を理解する。

Salesforce REST API および Heroku

Salesforce REST API を使用すると、簡単な HTTP と JSON 要求を使用して Salesforce と容易に統合できます。さまざまな REST API が用意されており、Salesforce 上のほぼすべてにアクセスできます。これにより、Salesforce 内のデータ、プロセス、およびメタデータを使用して、カスタムアプリケーションでさまざまな処理を行うことができます。REST API は認証に OAuth を使用します。これは、REST 認証を処理するための標準の方法です。

Salesforce のオブジェクトと Heroku との REST インターフェースを介した接続を示す画像

REST API を直接使用することもできますが、API を包み込む多くのラッパーライブラリが用意されており、Node.jsPythonRuby、Java などでそれらを容易に使用することができます。ラッパーライブラリは、認証、要求処理、応答処理など、低レベルのタスクを処理します。したがって、次のような HTTP 要求 (例として Node.js を使用) を手動で構築する必要はありません。

var query = 'SELECT name Account'; var url = 'https://na1.salesforce.com/services/data/v20.0/query/?q=' + encodeURIComponent(query); request.get(url, { 'auth': { 'bearer': 'bearerToken' } }); 

代わりに、Node.js 用のオープンソースの nforce ライブラリを使用することで次のような簡単な行になります。

org.query({ query: 'SELECT name FROM Account' }); 

最終的に nforce ライブラリは陰に隠れて同じことを行うだけですが、このライブラリを使用すると API が使いやすくなります。

アプリケーション単位のインテグレーションおよびカスタムユーザインターフェースを Salesforce REST API 上に構築できます。これらの最大の違いは、認証の処理方法です。アプリケーション単位のインテグレーションでは、アプリケーションが単一のインテグレーションユーザを認識し、REST API へのすべてのコールをこのユーザとして実行します。カスタムユーザインターフェースでは、カスタムアプリケーションとの認証をユーザが直接行いません。代わりに、ユーザは OAuth プロセスに従って、カスタムアプリケーションがユーザに代わって API コールを実行することを承認します。カスタムユーザインターフェースを使用している指定ユーザに代わって REST API への各要求が実行されます。

アプリケーション単位のインテグレーションの 1 つの使用事例として、データの変換と関連付けを行った後にデータの複製またはプロキシ化を行って別のシステムでデータを使用することがあります。たとえば、Heroku 上で動作する顧客向けの注文管理アプリケーションが Salesforce から顧客情報を取得する必要があります。この設定では、単一インテグレーションユーザを使用して、必要なすべての情報を Salesforce から取得できます。

ただし、注文管理アプリケーションがバックオフィス向けであり、ユーザが Salesforce を介してログインする場合、アプリケーションは、OAuth を使用するカスタムユーザインターフェースになります。これにより、注文管理アプリケーションが指定ユーザに代わって API 要求を実行できます。この場合、セキュリティおよび監査の目的で、どの指定ユーザが各 REST コールを実行するかを認識することが重要になります。

Heroku では、どちらの種類のアプリケーションも容易にリリースでき、OAuth と Salesforce REST API を容易に活用できます。

時間が取れるときに Salesforce REST API のドキュメントを参照して低レベルの API を学習してください。Heroku へのリリースを含む完全なクイックスタートと、REST API を使用する基本アプリケーションについては、Quick Force Node (JavaScript) または Quick Force Java を確認してください。

OAuth を使用する REST API 認証

REST API を使用する上で認証は重要な要素です。API への各要求に認証トークンまたは鍵を含める必要があるためです。アプリケーション単位のインテグレーションまたはカスタムユーザインターフェースのどちらを使用する場合も、アプリケーションは Salesforce 内にある接続アプリケーションを必要とします。これにより、どのアプリケーションが要求を実行しているかを Salesforce で特定でき、組織のシステム管理者が API へのアクセスを管理できます。

単一ユーザ

アプリケーション単位のインテグレーションでは、単一インテグレーションユーザのログイン情報をアプリケーションが認識する必要があります。これで REST API をコールし、ログイン情報を使用してログインして、認証トークンを返すことができます。

指定ユーザ

カスタムユーザインターフェースを構築すると、アプリケーションは実際のログイン情報を一切受け取りません。代わりに、認証トークンを取得するコードが OAuth プロセスによってアプリケーションに提供されます。Salesforce へのアプリケーションのアクセスはユーザが手動で認証します。そのフローは次のとおりです。

  1. 認証を要求するページにユーザがアクセスします。
  2. Heroku のアプリケーションがユーザを Salesforce OAuth ページにリダイレクトします。
  3. アプリケーションが以前認証されていない場合、ユーザに認証を促すメッセージが表示されます。

[アクセスを許可] ダイアログボックスが表示され、ワークベンチを認証するかどうか尋ねているスクリーンショット。

  1. 認証されると、Salesforce はユーザをコードと共にアプリケーションに戻します。
  2. アプリケーションはこのコードを使用してアクセストークンと更新トークンを取得します。
  3. アプリケーションはアクセストークンを使用して、Salesforce への REST API コールを実行します。

通常、アクセストークンと更新トークンは暗号化され、何らかのセッション状態またはデータベースの形式で保存されます。そのため、ユーザは要求のたびに何度も認証フローに進む必要はありません。

これらのトークンには機密情報が含まれます。そのため、取り扱いには最新の注意が必要です。

リソース