Skip to main content
From 16:00 UTC on January 17, 2026, to 20:00 UTC on January 17, 2026, we will perform planned maintenance on the Trailhead, myTrailhead, and Trailblazer Community sites. During the maintenance, these sites will be unavailable, and users won't be able to access them. Please plan your activities around this required maintenance.

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 を使用) を手動で構築する必要はありません。

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

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

conn.query('SELECT name FROM Account', callback);

最終的に jsforce ライブラリは陰に隠れて同じことを行うだけですが、このライブラリを使用すると 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 を学習してください。

OAuth を使用する REST API 認証

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

単一ユーザー

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

指定ユーザー

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

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

    [アクセスを許可] ダイアログボックスが表示され、Postman を認証するかどうか尋ねているスクリーンショット。
  1. 認証されると、Salesforce はユーザーをコードと共にアプリケーションに戻します。
  2. アプリケーションはこのコードを使用してアクセストークンと更新トークンを取得します。
  3. アプリケーションはアクセストークンを使用して、Salesforce への REST API コールを実行します。

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

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

リソース

Salesforce ヘルプで Trailhead のフィードバックを共有してください。

Trailhead についての感想をお聞かせください。[Salesforce ヘルプ] サイトから新しいフィードバックフォームにいつでもアクセスできるようになりました。

詳細はこちら フィードバックの共有に進む