FROM CACHE - jp_header
解決済

delegate access tokenを利用したStoreFrontApiの呼び出し

nyoshi
Shopify Partner
4 0 1

checkoutの作成をgraphql apiから作成しようとしています。

レート制限を考慮して、delegate access tokenを作成して呼び出しを考えております。

delegate access tokenを呼び出すAPIのaccess tokenの作成には下記を参考に行っております。

※参考サイト

https://shopify.dev/apps/auth/oauth/getting-started#step-5-get-a-permanent-access-token

scopeには「write_checkouts」を含めております。

delegateAccessScopeにはcheckout作成となるので「write_checkouts」をスコープに指定しております。

APIコールする際にヘッダーには「Shopify-Storefront-Private-Token: トークン値」を含めております。

checkout作成APIをコールすると「`403 Forbidden` response」の返答が帰ってきます。

checkout作成APIにはdelegate access tokenを指定することはできなのでしょうか?

 

1 件の受理された解決策

Qcoltd
Shopify Partner
1051 429 417

成功

私は、CurlでポチポチAPIコールを試してみた、というレベルの確認しかしていないので、

間違った理解、誤った検証をしている可能性がありますことご留意ください。

 

Shopify-Storefront-Private-Token

をRequest Hederに指定されているということは、

Storefront APIのcheckoutCreateを利用しようとしている、という認識でおります。

https://shopify.dev/api/storefront/2022-07/mutations/checkoutCreate

 

しかし、

delegateAccessTokenCreateは、

今のところ、Admin APIにしか存在しないように見えます。

 

Admin API: https://shopify.dev/api/admin-graphql/2022-07/mutations/delegateAccessTokenCreate

こちらに、delegateAccessTokenCreateは確かに存在します。

 

Storefront API: https://shopify.dev/api/storefront

こちらには、delegateAccessTokenCreateはないように見えます。

 

 

そして、

delegateAccessTokenCreateを実際に叩いて確認したところ、

作成できるアクセストークンは、Admin API用のアクセストークン(固定のアルファベット「エス、エイチ、ピー、エイ、ティー」で始まるトークン)しか作成できないように見えました。

 

 

Admin APIからStorefront API用のトークンを作成するには、

storefrontAccessTokenCreate をするのかもしれません。

https://shopify.dev/api/admin-graphql/2022-07/mutations/storefrontAccessTokenCreate

 

storefrontAccessTokenCreateを、実行してみたところ、

実際にStorefront API用のトークンが作成されました。

(ただし、作成したトークンが不要になった場合は、明示的に削除する必要があるのかもしれません。 https://shopify.dev/api/admin-graphql/2022-07/mutations/storefrontAccessTokenDelete )

 

 

最後になりますが、

Storefront APIのcheckoutCreateに必要なスコープは、

unauthenticated_write_checkouts のようです。

https://shopify.dev/api/storefront/2022-07/mutations/checkoutCreate

 

 

私は、ShopifyのAPIに詳しいわけではありませんので、あくまで参考に留めていただければと思います。

(キュー田辺)

株式会社Q (キュー)
グラフィックデザイン、アパレル事業、Web制作など色々やっている渋谷区代々木の会社です。ShopifyでのECサイトの運営・開発も行なっています。
私たちについて: https://web.q-co.jp/ テックブログ: https://techlab.q-co.jp/

元の投稿で解決策を見る

2件の返信2

Qcoltd
Shopify Partner
1051 429 417

成功

私は、CurlでポチポチAPIコールを試してみた、というレベルの確認しかしていないので、

間違った理解、誤った検証をしている可能性がありますことご留意ください。

 

Shopify-Storefront-Private-Token

をRequest Hederに指定されているということは、

Storefront APIのcheckoutCreateを利用しようとしている、という認識でおります。

https://shopify.dev/api/storefront/2022-07/mutations/checkoutCreate

 

しかし、

delegateAccessTokenCreateは、

今のところ、Admin APIにしか存在しないように見えます。

 

Admin API: https://shopify.dev/api/admin-graphql/2022-07/mutations/delegateAccessTokenCreate

こちらに、delegateAccessTokenCreateは確かに存在します。

 

Storefront API: https://shopify.dev/api/storefront

こちらには、delegateAccessTokenCreateはないように見えます。

 

 

そして、

delegateAccessTokenCreateを実際に叩いて確認したところ、

作成できるアクセストークンは、Admin API用のアクセストークン(固定のアルファベット「エス、エイチ、ピー、エイ、ティー」で始まるトークン)しか作成できないように見えました。

 

 

Admin APIからStorefront API用のトークンを作成するには、

storefrontAccessTokenCreate をするのかもしれません。

https://shopify.dev/api/admin-graphql/2022-07/mutations/storefrontAccessTokenCreate

 

storefrontAccessTokenCreateを、実行してみたところ、

実際にStorefront API用のトークンが作成されました。

(ただし、作成したトークンが不要になった場合は、明示的に削除する必要があるのかもしれません。 https://shopify.dev/api/admin-graphql/2022-07/mutations/storefrontAccessTokenDelete )

 

 

最後になりますが、

Storefront APIのcheckoutCreateに必要なスコープは、

unauthenticated_write_checkouts のようです。

https://shopify.dev/api/storefront/2022-07/mutations/checkoutCreate

 

 

私は、ShopifyのAPIに詳しいわけではありませんので、あくまで参考に留めていただければと思います。

(キュー田辺)

株式会社Q (キュー)
グラフィックデザイン、アパレル事業、Web制作など色々やっている渋谷区代々木の会社です。ShopifyでのECサイトの運営・開発も行なっています。
私たちについて: https://web.q-co.jp/ テックブログ: https://techlab.q-co.jp/
nyoshi
Shopify Partner
4 0 1

キュー田辺様

 

ご返信ありがとうございます。

shopifyサイトで提供されているドキュメントを確認した処、StoreFrontAPIの呼び出しに使用できないのではないかと思っておりました。

また以下の投稿内容を見つけましたので共有させていただきます。

 

https://community.shopify.com/c/storefront-api-and-sdks/403-response-when-using-shopify-storefront-p...

 

ご助力ありがとうございました。