この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
Account Manager で API クライアントを作成し、その API クライアントの認証情報を使用して SCAPI Admin API のアクセストークンをリクエストする方法を説明します。
Important
SCAPI Admin API にアクセスするための API クライアント (またはクライアント) を作成する前に、アクセスする必要のある API ファミリーごとに OAuth のスコープのリストを作成する必要があります。使用可能なすべてのスコープは、認可スコープカタログにリストアップされています。
たとえば、CDN ゾーンを使用するには次のスコープをリストに追加します。
1sfcc.cdn-zones
2sfcc.cdn-zones.rwスコープのリストを作成したら、このガイドに戻り、続けてお読みください。このリストは、Account Manager の Allowed Scopes (許可されるスコープ) フィールドに値を入力するときに必要になります。
SCAPI Admin API を使用するには、まず、管理者が (または管理者権限をもつユーザーが)、以下の手順に従って API クライアントを作成する必要があります。
Account Manager にログインします。
左のナビゲーションで API Client (API クライアント) をクリックします。
Add API Client (API クライアントの追加) をクリックします。
Display Name (表示名) フィールドに、API クライアントの内容を示す一意の名前を入力します。例: Admin Client for Pia Larson。
Password (パスワード) フィールドに、セキュアなパスワードを入力します。
Confirm Password (パスワードの確認入力) フィールドに、パスワードを再度入力します。
パスワード (クライアントシークレットともいう) をパスワードマネージャーなどのセキュアな場所に保存します。
Organizations (組織) セクションに移動し、次の操作を行います。
Roles (役割) セクションに移動し、次の操作を行います。
Salesforce Commerce API を選択します。OpenID Connect (OpenID コネクト) セクションに進み、次の操作を行います。
1mail
2roles
3tenantFilter
4profile
5openIdAllowed Scopes (許可されるスコープ) フィールドに、前もって用意したスコープのリストを入力します。スコープは、それぞれ 1 行に 1 つずつ入力します。
Important
Token Endpoint Auth Method (トークンエンドポイント認証方法) フィールドで client_secret_post を選択します。
Access Token Format (アクセストークンの形式) フィールドで JWT を選択します。
Redirect URIs (リダイレクト URI) フィールドに、http://localhost:8080 を追加します。
Save (保存) をクリックします。
保存後に表示される API クライアントのテーブルで、新しい API クライアントを探します。
テーブルの API Client ID (API クライアント ID) 列の値をコピーします。例: 1d763261-6522-4913-9d52-5d947d3b94c4。
B2C Commerce API に使用される API クライアントを Open Commerce API (OCAPI) で使用することはできず、その逆も同様です。各 API フレームワーク (B2C Commerce API と OCAPI) には、独自の API クライアントが必要です。また、OCAPI 用の API クライアントに、「Salesforce Commerce API」という役割を割り当てることはできません。
Important
SCAPI Admin API 用のアクセストークンをリクエストするには、Account Manager の oauth2 リソースにリクエストします。
ここに掲載されているサンプルでは、リクエストの作成をシンプルにするために、Unix のシェルコマンドを使用して環境変数を設定しています。Unix 系の OS を使用していない場合は、文字列置換を手動で行うか、Postman などのツールで変数置換を処理できます。
Note
リクエストの際、HTTP ヘッダーに、クライアント ID、続いてコロン (:)、そしてクライアントシークレット (パスワード) からなる認証情報文字列を指定する必要があります。client_id は、SLAS サービスに必要な各テナントのユニバーサル一意識別子 (UUID) です。
次のコマンドを使用して、認証情報文字列の書式を正しく設定し、環境変数として保存します。
以下のコマンドを実行する前に、サンプルのクライアント ID (1d763261-6522-4913-9d52-5d947d3b94c4) とサンプルのクライアントシークレット (GS8KmdDEUKfWnEnv) を、先ほど作成した API クライアントの認証情報に置き換えます。
1export "SFCC_OAUTH_CLIENT_ID=1d763261-6522-4913-9d52-5d947d3b94c4"
2export "SFCC_OAUTH_CLIENT_SECRET=GS8KmdDEUKfWnEnv"
3export "SFCC_CREDENTIALS=${SFCC_OAUTH_CLIENT_ID}:${SFCC_OAUTH_CLIENT_SECRET}"リクエストには、scope クエリパラメーターを使用して追加情報も含める必要があります。
API クライアントに複数のインスタンスの役割を追加することはできますが、一度にリクエストできるアクセストークンは 1 つのインスタンス用のもののみです。アクセストークンに関連付けるインスタンスを特定するために、そのレルム ID とインスタンス ID を環境変数に設定します。
以下のコマンドを実行する前に、サンプルのレルム ID (zzte) とサンプルのインスタンス ID (053) を実際の B2C Commerce インスタンスの値に置き換えます。(これらの値の検索方法については、ベース URL とリクエストの作成のガイドを参照してください。)
1export "SFCC_REALM_ID=zzte"
2export "SFCC_INSTANCE_ID=053"scope パラメーターには、パラメーターをもう 1 つ追加する必要があります。それは、リクエストされたスコープをスペースで区切ったリストです。リクエストされたスコープは、クライアント ID 用に事前に構成した、許可されるスコープのリストに照らしてチェックされます。
この例では、必要なスコープは 1 つだけです (sfcc.catalogs)。複数のスコープをリクエストする場合は、スペースで区切ります。
1export SFCC_OAUTH_SCOPES=sfcc.catalogsスコープに -rw バージョンを含める場合は、読み取り専用の対応するバージョンは冗長であるため、使用しないでください。これは Account Manager と SLAS の両方のクライアントスコープに適用されますが、SLAS はトークン内のすべてのスコープを提供し、冗長性によってトークンが不必要に大きくなる可能性があるため、SLAS 買い物客のアクセス呼び出しでは特に重要です。
Important
これで、oauth2 エンドポイントの文字列をすべて収集したので、以下のように HTTP リクエストを使用して、アクセストークンをリクエストできます。
1curl "https://account.demandware.com/dwsso/oauth2/access_token" \
2--request 'POST' \
3--user "$SFCC_CREDENTIALS" \
4--header 'Content-Type: application/x-www-form-urlencoded' \
5--data "grant_type=client_credentials" \
6--data-urlencode "scope=SALESFORCE_COMMERCE_API:${SFCC_REALM_ID}_${SFCC_INSTANCE_ID} $SFCC_OAUTH_SCOPES"環境変数を使用していない場合は、curl コマンドを実行する前に、手動で文字列置換を行ってください。環境変数の代わりにサンプル文字列を使用すると、同じコマンドは以下のようになります。
1curl "https://account.demandware.com/dwsso/oauth2/access_token" \
2--request 'POST' \
3--user "1d763261-6522-4913-9d52-5d947d3b94c4:GS8KmdDEUKfWnEnv" \
4--header 'Content-Type: application/x-www-form-urlencoded' \
5--data "grant_type=client_credentials" \
6--data-urlencode "scope=SALESFORCE_COMMERCE_API:zzte_053 sfcc.catalogs"SCAPI Admin API へのアクセスでサポートされている付与タイプは、client_credentials のみであることに注意してください。
Note
リクエストが正しく行われると、JSON オブジェクトの一部としてアクセストークンが返されます。
1{
2 "access_token": "eyJ0eXAiOiJKV1QiLCJraWQiOiJEMWhPUDdEODN4TjBqZWlqaTI3WWFvZFRjL0E9IiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiIxZDc2MzI2MS02NTIyLTQ5MTMtOWQ1Mi01ZDk0N2QzYjk0YzQiLCJjdHMiOiJPQVVUSDJfU1RBVEVMRVNTX0dSQU5UIiwiYXVkaXRUcmFja2luZ0lkIjoiZDBkZDk4MjItMmI3ZC00MThiLTkzZTktYzg2YjgxYjZjZGFhLTE2OTY2NTI3MSIsInN1Ym5hbWUiOiIxZDc2MzI2MS02NTIyLTQ5MTMtOWQ1Mi01ZDk0N2QzYjk0YzQiLCJpc3MiOiJodHRwczovL2FjY291bnQuZGVtYW5kd2FyZS5jb206NDQzL2R3c3NvL29hdXRoMiIsInRva2VuTmFtZSI6ImFjY2Vzc190b2tlbiIsInRva2VuX3R5cGUiOiJCZWFyZXIiLCJhdXRoR3JhbnRJZCI6IjcyWTZ0Slk1bm9vdEhMX2YzLWN5SzZrajVsOCIsImF1ZCI6IjFkNzYzMjYxLTY1MjItNDkxMy05ZDUyLTVkOTQ3ZDNiOTRjNCIsIm5iZiI6MTY1MTYyMjUzOCwiZ3JhbnRfdHlwZSI6ImNsaWVudF9jcmVkZW50aWFscyIsInNjb3BlIjpbIlNBTEVTRk9SQ0VfQ09NTUVSQ0VfQVBJOnp6dGVfMDUzIiwic2ZjYy5jYXRhbG9ncyIsIm1haWwiLCJ0ZW5hbnRGaWx0ZXIiLCJvcGVuSWQiLCJyb2xlcyJdLCJhdXRoX3RpbWUiOjE2NTE2MjI1MzgsInJlYWxtIjoiLyIsImV4cCI6MTY1MTYyNDMzOCwiaWF0IjoxNjUxNjIyNTM4LCJleHBpcmVzX2luIjoxODAwLCJqdGkiOiJlaXdlanNyWmxRdEpmMXhPZ0lJaVQ3REo2LTgiLCJjbGllbnRfaWQiOiIxZDc2MzI2MS02NTIyLTQ5MTMtOWQ1Mi01ZDk0N2QzYjk0YzQiLCJ0ZW5hbnRGaWx0ZXIiOiJTQUxFU0ZPUkNFX0NPTU1FUkNFX0FQSTp6enRlXzA1MyIsInJvbGVzIjpbIlNBTEVTRk9SQ0VfQ09NTUVSQ0VfQVBJIl19.N_D2gZuJfQcIo-X42O4i-hz1j4_KxYzaqYb4CqVSf96Zt9w5-WmDPP_swuIz2eCivxwrs0hyfKmDTS7mQG_fLXiuAr6FT0bMVYndfmSbngJl24eCXu2U6b5-cMlUmwAG7mO7Uji4_cXtayUCA9XGUSVXxu1HuiFzANws_D-cCWlgoaWpEvPmkhq3o_ICJvhcqaZTYDaoQ62hDToMqdojbRQFe6s2kDLiqOIi6Ey_VYev8bRTu4RtXmJ6Pfj_xp0mgc4ak8zaxCVcykZ-ziEE9TqO-tN1U6n0QnuTh-t3wz2iSyEcfJ3fOtv9v9zz1BYpe1qMCYDTkKnMq_alERtKZg",
3 "scope": "SALESFORCE_COMMERCE_API:zzte_053 sfcc.catalogs mail tenantFilter openId roles",
4 "token_type": "Bearer",
5 "expires_in": 1799,
6 "refresh_expires_in": 0,
7 "not-before-policy": 0
8}Account Manager からのアクセストークン (および正しいスコープ) を使用すれば、Assignments、Catalogs、Customers、Inventory Availability、Orders、Products、および その他 8 つを含め、どの SCAPI Admin API にもアクセスできるようになります。
これで、Account Manager で API クライアントを設定し、SCAPI Admin API のアクセストークンを取得する方法を学び終えました。次は、API リクエストを実行してみましょう。
入門ガイドシリーズの最後のガイド、ベース URL とリクエストの作成では、API リクエストをどのように作成するかについて説明します。
Shopper API にアクセスする方法については、Shopper API の認可を参照してください。