Salesforce 接続アプリ作成の依頼手順書
Salesforceのレポートをスプレッドシートに自動取得するため、読み取り用の「外部クライアントアプリケーション」を1つ作成し、発行される鍵2つを依頼する担当者にお渡しいただきたい、という依頼です。
作業時間: 約10分(+設定反映の待ち時間 最大10分)/ 必要権限: システム管理者
セキュリティ上のポイント
- OAuth範囲は「APIを使用してユーザーデータを管理 (api)」のみ。外部サービスへの常時接続やデータ送信は発生しません(スプレッドシート側から取得しに行くだけです)
- アクセス範囲は「実行ユーザー」に指定した1ユーザーの閲覧権限と同一です。担当者を実行ユーザーにすれば、担当者が画面で見られる以上のデータには一切アクセスできません
- 鍵はコードには書かれず、担当者のGoogleアカウント内の非公開領域にのみ保存されます(シートを共有しても第三者からは見えません)
A情シス側の作業(約10分)
A-1. 外部クライアントアプリケーションの新規作成
- 設定 → クイック検索「アプリケーションマネージャ」
- 右上の「新規外部クライアントアプリケーション」をクリック
新しいUIには「新規接続アプリケーション」ボタンはありません。「新規外部クライアントアプリケーション」が後継で、設定項目は同等です。
- 基本情報を入力:
- アプリケーション名:
SFレポート取得(マーケ)など任意 - API参照名: 半角英数字とアンダースコアのみ(例:
SF_Report_Marketing) - 取引先責任者メール: 作業者のメール / 配信状態: ローカル
- アプリケーション名:
アプリ名を日本語にすると、自動入力されるAPI参照名が不正になり保存エラーになります。API参照名を手で英数字に直してください。
A-2. OAuth設定
- 「OAuthを有効化」にチェック
- コールバックURL:
https://localhost(使いませんが入力必須です) - OAuth範囲: 「APIを使用してユーザーデータを管理 (api)」だけを右側の「選択したOAuth範囲」へ移動。full や web は追加しない
コールバックURLの貼り付けが二重(
https://localhosthttps://localhost)になる事故が起きやすいので確認してください。A-3. クライアントログイン情報フローの有効化(いちばん間違えやすい所)
- 同じ画面を下へスクロール →「OAuthフローおよび外部クライアントアプリケーションの機能強化」の「クライアントログイン情報フローを有効化」にチェック
- 直下に出る「(ユーザー名) として実行」に、実行ユーザーのSalesforceユーザー名を入力
- 保存
メールアドレスではなく「ユーザー名」です(見た目は似ていますが別物のことがあります)。設定 → ユーザー → 対象者の行の「ユーザー名」列の値をコピーして貼るのが確実です。
保存後に修正する場合は、必ず既存アプリを開いて編集してください。もう一度「新規」から作ると「already exists」エラーになります。既存アプリの一覧は「アプリケーションマネージャ」ではなく、クイック検索「外部クライアントアプリケーションマネージャー」にあります。
A-4. 鍵の発行と受け渡し
- 作成したアプリの「設定」タブ → OAuth設定 →「コンシューマ鍵と秘密」ボタン(操作者のメールに確認コードが届きます)
- 表示された「コンシューマ鍵」と「コンシューマの秘密」の2つを、社内の安全な方法(1Password共有など)で担当者へ。チャットやメール平文での送付は避けてください
A-5. あわせて伝えていただきたい情報
- 設定 → クイック検索「私のドメイン」→「現在の 私のドメイン の URL」の値(
xxxx.my.salesforce.com形式)
ブラウザのアドレスバーに出る
xxxx.lightning.force.com では動きません。必ず my.salesforce.com 形式のものをお願いします。情シス側の作業はここまでです。ありがとうございます。
B担当者側の作業(参考・約15分)
- Google Workspace Marketplace の ReportZen を開いて「インストール」を押します(無料)
- Googleスプレッドシートを開き、拡張機能 → ReportZen → 「初期設定(接続情報の登録)」に、A-5のURLとA-4の鍵・秘密を入力
- 拡張機能 → ReportZen → 「接続テスト」→「接続OK!」を確認
- 「レポート一覧シートを作る」→「SF設定」シートのA2に対象レポートのID(レポートを開いたURL内の
00Oで始まる英数字)を記入 - 「全レポート更新」→ 結果列に「✅ n件」が出れば完了。「毎朝の自動更新をON」で定時実行も可能
会社のGoogleアカウントで個別のインストールが止められていることがあります。その場合は、A章の接続アプリと一緒に「ReportZenのインストール許可」も情シスにお願いしてください。
2,000件を超える取得にはライセンスキーが要ります。拡張機能 → ReportZen → 「ライセンスキーを登録(全件解錠)」に貼り付けてください。キーを入れない間も、2,000件までの取得とCSVの取り込みはそのまま使えます。
対象レポートの条件: 形式が「表形式」で、列に「レコードID」(取引先ID等)が含まれていること。
Cエラーが出たときの早見表
| エラー表示 | 原因 | 直し方 |
|---|---|---|
| API参照名に使用できるのは英数字のみ… | アプリ名が日本語でAPI参照名に自動流用された | API参照名を手で英数字に(A-1) |
| 有効な実行ユーザーを入力してください | 実行ユーザーが未入力/メールアドレスを入れた | 「ユーザー名」を入れる(A-3) |
| already exists | 既存アプリがあるのに「新規」から再作成した | 既存アプリを開いて編集(A-3) |
| SyntaxError: Unexpected token '<' … is not valid JSON | URLが lightning.force.com 形式 | my.salesforce.com 形式に(A-5) |
| invalid_grant: no client credentials user enabled | フロー有効化のチェックまたは実行ユーザーが未保存 | A-3をやり直して保存 |
| 認証エラーが直らない | 設定反映前(最大10分) | 数分待って再実行 |