foce.comのREST APIではOAuth2.0を利用することができるが、
Salesforce環境やユーザによってOAuthのエンドポイントが異なっていたのでメモる。
基本的には認可のエンドポイントは
https://[domain]/services/oauth2/authorize
トークン発行のエンドポイントは
https://[domain]/services/oauth2/token
となっており、[domain]の部分がSalesforce環境やログインユーザによって変わってくる感じ。
1. 環境によるエンドポイントの違い
■Developer環境・本番環境→login.salesforce.com
■Sandbox環境
→test.salesforce.com
■私のドメイン設定時
→私のドメインの値。
上記の環境によるドメイン値も利用できるが、
「https://login.salesforce.comからのログインを防止」にチェックがついていると
ログインされていない状態の場合は、認証画面でログインできないので
素直に私のドメインをエンドポイントにした方が良い。
2. ポータル・コミュニティユーザの場合
■ポータル→ポータルに紐付けたSitesを設定し、そのSitesのドメイン名をエンドポイントにする。
基本的にポータルのログイン画面は
https://[domain]/secur/login_portal.jsp?orgId=[orgId]&portalId=[portalId]
の形式になっており、通常のSalesforceのログイン画面ではログインできないため、
Sitesのドメインを介してログインする方式。
詳細はこちらから。
ちなみにSOAP APIではorganizationIdやportalIdを設定可能。
■コミュニティ
→コミュニティで設定したドメイン名。
こちらはポータルと違ってドメイン名を設定が必須なので、Sitesを使う必要はない。
ポータルのSites設定方式は面倒なので、出来れば新機能のコミュニティに寄せたい感じ。
そもそも新規の環境ではコミュニティ使えないはずだし。