SalesforceでAPI連携を行っていると、予期せず「権限が不足している」というエラーに遭遇することがあります。このエラーの原因は、API使用量の制限によるものか、あるいはユーザーに必要な権限が付与されていないかのどちらかです。特に、権限セットや共有設定が原因でデータにアクセスできないケースは、初心者が見落としがちなポイントです。本記事では、API制限で権限不足が発生した場合に、権限セットと共有設定をどのように確認し、問題を切り分ければよいかを具体的に解説します。
【要点】この記事で確認すること
- 最初に見る場所: エラーメッセージの詳細と、該当ユーザーに割り当てられている権限セットの一覧です。
- 切り分けの軸: API使用量の制限なのか、オブジェクト・項目レベルのアクセス権限なのか、共有設定による制限なのかを判断します。
- 注意点: 権限セットで「API Enabled」を有効にしても、共有設定でレコードが参照できない場合があります。会社PCから安易に管理者設定を変更せず、事前に管理者に相談してください。
ADVERTISEMENT
目次
1. API制限エラーの種類と原因
SalesforceのAPI制限に関するエラーは、大きく分けて「API使用量制限」と「権限不足」の2つに分類されます。それぞれのエラーメッセージや発生状況を把握することで、原因を素早く特定できます。
API使用量制限とは
Salesforceには、組織ごとに1日あたりのAPI呼び出し上限が設定されています。この上限を超えると、エラーコード REQUEST_LIMIT_EXCEEDED が返されます。通常、API使用量制限は24時間ごとにリセットされますが、大量のバッチ処理や外部連携が集中すると、意図せず制限に達することがあります。
権限不足とは
権限不足によるエラーは、主に以下の3つの要因で発生します。
- システム権限の不足: 「API Enabled」権限がユーザーに付与されていない。
- オブジェクト権限の不足: 操作対象のオブジェクト(例: 取引先、商談)に対する読み取り・作成・更新・削除の権限がない。
- 共有設定による制限: オブジェクト権限は付与されていても、共有ルールや組織の共有設定によって特定のレコードにアクセスできない。
特に、共有設定はAPI経由のアクセスにも適用されるため、ユーザーが該当レコードを参照できない場合は権限セットだけでなく共有設定も確認する必要があります。
| 比較項目 | API使用量制限 | 権限不足 |
|---|---|---|
| エラーメッセージ例 | REQUEST_LIMIT_EXCEEDED | INSUFFICIENT_ACCESS_OR_READONLY |
| 主な原因 | 1日あたりのAPI呼び出し回数超過 | 権限セット・共有設定の不足 |
| 確認場所 | 設定 > 会社の設定 > API使用制限 | 設定 > ユーザー > 権限セット割り当て / 共有設定 |
| 対処方法 | API呼び出し頻度の調整、または上限引き上げ申請 | 適切な権限セットの割り当てや共有設定の変更 |
2. 権限セットの確認手順
権限セットは、ユーザーに追加のアクセス権限を付与するために使います。APIを使用するには、まず「API Enabled」権限が必要です。以下の手順で、対象ユーザーが適切な権限セットを持っているかを確認します。
- Salesforceに管理者権限でログインし、歯車アイコンから「設定(Setup)」をクリックします。
- クイック検索ボックスに「権限セット」と入力し、「権限セット」を選択します。
- 一覧から、問題のユーザーに割り当てられている権限セットを確認します。もし権限セットがなければ、新規作成または既存の権限セットを割り当てます。
- 権限セットを開き、「システム権限」のセクションで「API Enabled」が有効になっているかを確認します。有効になっていなければ「編集」ボタンからチェックを入れます。
- さらに、「オブジェクト設定」で該当オブジェクト(例: 取引先)の読み取り権限が付与されているか確認します。権限がない場合は、ここで追加します。
- 設定後、必ず「保存」をクリックし、数分待ってから再度APIをテストします。権限の反映には多少のタイムラグがあるため、すぐにエラーが解消されない場合があります。
権限セットの割り当て時の注意点
権限セットは、ユーザーに直接割り当てることも、権限セットグループを使って一括管理することもできます。複数の権限セットが競合した場合、より広い権限が優先されるため、意図しない権限が付与されていないか確認してください。また、「API Enabled」権限は多くの権限セットテンプレートに含まれているため、基本権限セットを流用すると漏れなく付与できます。
3. 共有設定の確認手順
権限セットでオブジェクトへのアクセス権限が正しく付与されていても、共有設定によって特定のレコードが見えないケースがあります。共有設定は、組織全体の既定のアクセスレベルと、それを上書きする共有ルールや手動共有で構成されます。以下の手順で現状を確認します。
- 設定メニューから「共有設定」を開きます。クイック検索で「共有設定」と入力すると見つかります。
- 「組織の共有の既定値」のセクションで、問題のオブジェクトが「参照のみ」や「非公開」になっていないか確認します。API連携でレコードを参照するためには、少なくとも「参照のみ」以上のアクセスが必要です。
- 次に、「共有ルール」を確認します。ユーザーのロールや公開グループに基づいてレコードの共有を開放するルールが設定されているかどうかを確認します。該当ユーザーが適切な共有ルールの対象になっているか、条件を見直します。
- 「手動共有」や「承認プロセスによる共有」が設定されている場合、それらがAPIアクセスにも影響を与えることがあります。関連するレコードで手動共有が行われているか、管理者に問い合わせてください。
- 確認後、テストユーザー(権限がないユーザーなど)で実際にAPIを実行し、レコードが取得できるか検証します。問題が解決しない場合は、共有設定の変更を検討しますが、変更は管理者の承認を得てから行ってください。
共有設定とAPIアクセスの関係
SalesforceのAPIは、レコードへのアクセスに通常のユーザーインターフェースと同じ共有ルールを適用します。つまり、ユーザーがSalesforce画面で見ることができないレコードは、APIでも取得できません。そのため、API専用のユーザーを作成する際は、そのユーザーに必要なすべてのレコードへのアクセス権を付与するために、権限セットと共有設定を適切に組み合わせる必要があります。
4. 失敗パターンと対処例
ここでは、実際に発生しやすい失敗パターンを2つ紹介します。ご自身の状況と照らし合わせて、原因を特定してください。
パターン1: 権限セットは正しいが、共有設定が「非公開」になっている
ユーザーAには「API Enabled」権限と取引先オブジェクトの読み取り権限が含まれた権限セットが割り当てられています。しかし、組織全体の共有設定で取引先が「非公開」に設定されており、ユーザーAは自分のロールのレコードしか参照できません。APIで全取引先を取得しようとすると、権限不足エラーになります。
対処として、該当ユーザーのロールを上位にするか、共有ルールで「公開グループに所属するすべての取引先を参照可能」にするなどの設定を追加します。
パターン2: APIクライアントのユーザーに「API Enabled」権限がない
API連携用の専用ユーザーを作成したが、そのユーザーに「API Enabled」権限を付与するのを忘れていたケースです。この場合、どのオブジェクトに対してもAPI呼び出しが拒否されます。エラーメッセージは INSUFFICIENT_ACCESS_OR_READONLY で返ります。
対処として、該当ユーザーに「API Enabled」権限を含む権限セットを割り当てます。
5. 管理者に確認すべきポイント
問題の切り分けが難しい場合は、Salesforce管理者に以下の情報を伝えると、迅速な対応が期待できます。
- エラーの日時とAPIリクエストの内容: いつ、どのAPIメソッド(REST/SOAP)でエラーが発生したか。
- 該当ユーザーのユーザー名またはID: 権限と共有設定を確認するために必要です。
- 操作対象のオブジェクトとレコード: どのオブジェクトのどのレコードに対してアクセスしようとしたか。
- 現在の権限セットと共有設定のスクリーンショット(任意): 視覚的な情報があると管理者が理解しやすくなります。
また、API使用量制限が疑われる場合は、設定 > 「API使用制限」から組織の現在の使用量と制限値を確認し、管理者に報告してください。
6. よくある質問
Q1: 「API Enabled」権限を付与したのにエラーが続きます。
権限の反映に時間がかかっている可能性があります。通常は数分で反映されますが、最大で24時間かかる場合もあります。また、共有設定やオブジェクト権限が不足している可能性もあるため、改めて全ての設定を確認してください。
Q2: 共有設定を変更せずにAPIで全てのレコードを取得する方法はありますか?
システム管理者権限を持つユーザー(例: System Administratorプロファイル)でAPIを実行すれば、共有設定の制限を受けずに全てのレコードにアクセスできます。ただし、セキュリティ上のリスクがあるため、通常は専用のAPIユーザーを作成し、必要最小限の権限と共有設定を付与することを推奨します。
Q3: エラーメッセージに「INSUFFICIENT_ACCESS_OR_READONLY」と表示されました。原因は何ですか?
このエラーは主に、以下のいずれかが原因です。(1) API Enabled権限がない、(2) オブジェクトに対する読み取り権限がない、(3) 共有設定によってレコードが非表示になっている。エラーの詳細を確認し、権限セットと共有設定を順にチェックしてください。
7. まとめ
SalesforceでAPI制限による権限不足が発生した場合、まずはエラーメッセージの種類を確認し、API使用量制限なのか権限不足なのかを切り分けることが重要です。権限不足が原因であれば、権限セットで「API Enabled」と対象オブジェクトの権限を確認し、さらに共有設定が適切かどうかを検証します。権限セットと共有設定の両方を正しく設定することで、APIアクセスの問題を解決できます。管理者と連携しながら、組織のセキュリティポリシーに沿った設定を行うようにしてください。
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Office・仕事術の人気記事ランキング
- 【神技】保存せずに閉じたExcel・Wordファイルを復元する!消えたデータを復活させる4つの救出法
- 【Outlook】添付ファイルが「Winmail.dat」に化ける!受信側が困らない送信設定
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【PDF】PDFに入力した文字の「フォント・サイズ・色」を変更するプロパティ設定
- 【Excel】文字が入っているセルの「個数」を数える!COUNTA関数の簡単な使い方
- 【Copilot】「サービスに接続できません」エラーの原因切り分けと対処法
- 【PDF】結合するPDFの「用紙サイズ」がバラバラな時、すべてを「A4サイズ」に強制リサイズしてから結合する
- 【Excel】矢印キーで「セルが動かず画面がスクロールする」!ScrollLockの解除方法(ノートPC対応)
