FROM CACHE - jp_header
このコミュニティはピアツーピアサポートに移行しました。Shopify サポートは今後、このコミュニティへのサービスを提供いたしません。これからもぜひ、他のマーチャントやパートナーとつながり、サポートし合い、経験を共有してください。 当社の行動規範に違反する行動や削除を希望するコンテンツがありましたら、引き続きご報告ください

【BulkOperationRunQuery】使用方法、リターン値が取得できない。

【BulkOperationRunQuery】使用方法、リターン値が取得できない。

kamiyama
新規メンバー
9 0 0

bulkOperationRunQueryを使用してOrderデータやProductデータを取得しようとしてますが、

該当コマンドを実行しても実行状況を把握するためのID情報などがリターンされません。

こちらのコマンドの中に誤りなどはございますでしょうか。

【実行コマンド】

curl -X POST

/admin/api/2023-01/graphql.com 
-H 'Content-Type: application/graphql'
-H '(トークン情報)'
-d '

{

mutation {

 bulkOperationRunQuery(

  query: """

  """

 ) {

  bulkOperation {

   id

   status

  }

  userErrors {

   field

   message

  }

 }

}'

 

また、そもそもcurlコマンドにて呼び出しているgraphql.jsonが存在しているのかも確認しましたが、エラー表示となりました。

graphql.jsonがそもそも起動できておらず、リターン値が取得できていないという認識であっているのでしょうか。

【実行コマンド】

curl --connect-timeout 360 --max-time 720 --location --request GET "admin/api/2023-01/graphql.json "

-H "(トークン情報)"

 

【エラーメッセージ】

{"errors":"Not Found"}

17件の返信17

ogasawarakyohei
Shopify Partner
114 44 42

> admin/api/2023-01/graphql.com 

 

.comではなく.jsonの間違いではないですか?

小笠原 京平 | 株式会社Tsun | RuffRuff アプリ
・私の回答が役に立ったら、いいね! ボタンをクリックして教えてください!
Shopify 開発で役に立つ情報を発信していますので、テックブログおすすめ Shopifyアプリ もぜひご参照ください。
kamiyama
新規メンバー
9 0 0

ご連絡ありがとうございます。

失礼致しました。

 


@ogasawarakyohei さんは書きました:

> /admin/api/2023-01/graphql.com 

 

.comではなく.jsonの間違いではないですか?


記載内容の間違いでした。正しくは以下の通りで.jsonの状態でもリターンが返ってきていない状態でした。

/admin/api/2023-01/graphql .json

ogasawarakyohei
Shopify Partner
114 44 42

 

 

Content-Type: application/graphql

 

ではなく、

Content-Type: application/json

で試してみるとどうですか?

 

 

> そもそもcurlコマンドにて呼び出しているgraphql.jsonが存在しているのかも確認しましたが、

 

こちらですが、GraphQLのエンドポイントですので、GETで「Not found」が返ってくるのは仕様だったと思います。(ちょっとうろ覚えなのですが、コミュニティ内に似たような質問があったように記憶しています)

小笠原 京平 | 株式会社Tsun | RuffRuff アプリ
・私の回答が役に立ったら、いいね! ボタンをクリックして教えてください!
Shopify 開発で役に立つ情報を発信していますので、テックブログおすすめ Shopifyアプリ もぜひご参照ください。
kamiyama
新規メンバー
9 0 0

Content-Type: application/graphql

ではなく、

Content-Type: application/json

で試してみるとどうですか?


ご指摘ありがとうございます。

該当箇所を修正して実行したところ、レスポンスがありました。

しかしリクエスト内容がエラーメッセージと読み取れる「Bad Request」という内容でした。実行結果のエラーメッセージに対する対処法やメッセージ内容一覧のようなものはございますでしょうか。

 

また、今回実行に使用したコマンドにてquery部分に記載した内容は以下の通りです。

query: """
{
products(query: "created_at:>=2020-01-01 AND created_at:<2020-01-02") {
edges {
node {
id
}
}
}
"""

ogasawarakyohei
Shopify Partner
114 44 42

しかしリクエスト内容がエラーメッセージと読み取れる「Bad Request」という内容でした。実行結果のエラーメッセージに対する対処法やメッセージ内容一覧のようなものはございますでしょうか。

 

こちらです。

https://shopify.dev/docs/api/admin-graphql#status_and_error_codes

 

エラー内容から推測すると、おそらくですが、クエリ部分の記述方法の問題ではないかと思います。

https://shopify.dev/docs/api/admin-graphql/2023-04/queries/order#examples-Get_an_order_using_the_Que...

などにcURLのサンプルもありますので、確認してみてください。

小笠原 京平 | 株式会社Tsun | RuffRuff アプリ
・私の回答が役に立ったら、いいね! ボタンをクリックして教えてください!
Shopify 開発で役に立つ情報を発信していますので、テックブログおすすめ Shopifyアプリ もぜひご参照ください。
kamiyama
新規メンバー
9 0 0

サンプル情報ありがとうございます。ご共有頂いた情報からコマンドを実行してみましたが、変わらず「Bad Request」という結果でした。

<実行コマンド>

curl -X POST \
 /admin/api/2023-01/graphql.com 
-H 'Content-Type: application/json' \
-H 'X-Shopify-Access-Token: アクセストークン' \
-d '
{ mutation {
bulkOperationRunQuery(
query: """
{ order(id: "gid://shopify/Order/5183833309402") {
edges { node { name } } }
"""
) {
bulkOperation {
id
status
}
userErrors {
field
message
} } }'

もし可能でしたら、bulkOperationRunQueryに記載する赤文字の内容で実際にデータを取得することが可能なクエリ文をご共有頂くことは可能でしょうか。

何度も申し訳ございませんが、よろしくお願い致します。

ogasawarakyohei
Shopify Partner
114 44 42

私の環境では下記で正常にリクエストできました。

 

curl -X POST \
https://tsun-app-dev-checkout-extensibility.myshopify.com/admin/api/2023-04/graphql.json \
-H 'Content-Type: application/json' \
-H 'X-Shopify-Access-Token: {access_token}' \
-d '{
  "query": "mutation { bulkOperationRunQuery( query: \"\"\" { products { edges { node { id title } } } } \"\"\" ) { bulkOperation { id status } userErrors { field message }}}"
}'

 

小笠原 京平 | 株式会社Tsun | RuffRuff アプリ
・私の回答が役に立ったら、いいね! ボタンをクリックして教えてください!
Shopify 開発で役に立つ情報を発信していますので、テックブログおすすめ Shopifyアプリ もぜひご参照ください。
kamiyama
新規メンバー
9 0 0

ご返信ありがとうございます。頂戴したquery文をもとに実行してみました結果としては「BadRquest」は出てきませんでしたが、何もレスポンスが状態でした。

<実行コマンド>

curl -X POST \
 /admin/api/2023-01/graphql.com 
-H 'Content-Type: application/json' \
-H 'X-Shopify-Access-Token:{access_token}' \
-d '{"query":"mutation { bulkOperationRunQuery( query: \"\"\" { products { edges { node { id title } } } } \"\"\") { bulkOperation { id status } userErrors { field message }}}"}'

<レスポンス結果>

kamiyama_0-1689814206898.png

以下のようなレスポンスがリターンされることを想定しておりましたが、合っていますでしょうか。

{
"data": {
"bulkOperationRunQuery": {
"bulkOperation": {
"id": "gid:\/\/shopify\/BulkOperation\/720918",
"status": "CREATED"
},
"userErrors": []
}
},
...
}


もし、上記レスポンスになる形であれば、上記の通りにならない他の要因はどんなことが想定されますでしょうか。

ogasawarakyohei
Shopify Partner
114 44 42

以下のようなレスポンスがリターンされることを想定しておりましたが、合っていますでしょうか。

 

合っています。

 

{access_token}の部分はご自身のアクセストークンに置き換えて実行されましたか?

小笠原 京平 | 株式会社Tsun | RuffRuff アプリ
・私の回答が役に立ったら、いいね! ボタンをクリックして教えてください!
Shopify 開発で役に立つ情報を発信していますので、テックブログおすすめ Shopifyアプリ もぜひご参照ください。
kamiyama
新規メンバー
9 0 0

 

{access_token}の部分はご自身のアクセストークンに置き換えて実行されましたか?


はい、{access_token}は置き換えて実行おります。

ogasawarakyohei
Shopify Partner
114 44 42

問題の切り分けのため、他のクエリは成功するのかなど試してみてはどうでしょう。

小笠原 京平 | 株式会社Tsun | RuffRuff アプリ
・私の回答が役に立ったら、いいね! ボタンをクリックして教えてください!
Shopify 開発で役に立つ情報を発信していますので、テックブログおすすめ Shopifyアプリ もぜひご参照ください。
kamiyama
新規メンバー
9 0 0

いくつかqueryを組んでみましたが、挙動としてレスポンスが返ってきませんでした。他に確認できる内容などはありますでしょうか。

curl -X POST \
admin/api/2023-01/graphql.json  \
-H 'Content-Type: application/json' \
-H 'X-Shopify-Access-Token:{access_token}' \
-d '{"query": "mutation { bulkOperationRunQuery( query: \"\"\" { order(id: \"gid://shopify/Order/148977776\") { id } } \"\"\") { bulkOperation { id status } userErrors { field message }}}"}'

 

curl -X POST \
admin/api/2023-01/graphql.json  \
-H 'Content-Type: application/json' \
-H 'X-Shopify-Access-Token:{access_token}' \
-d '{"query": "mutation { bulkOperationRunQuery( query: \"\"\" { { orders(first: 10) { edges { node { id } } } } \"\"\") { bulkOperation { id status } userErrors { field message }}}"}'

 

curl -X POST \
admin/api/2023-01/graphql.json  \
-H 'Content-Type: application/json' \
-H 'X-Shopify-Access-Token:{access_token}' \
-d '{"query": "mutation { bulkOperationRunQuery( query: \"\"\" { { products(first: 10) { edges { node { id title } } } } \"\"\") { bulkOperation { id status } userErrors { field message }}}"}'


 

ogasawarakyohei
Shopify Partner
114 44 42

bulkOperationRunQuery mutation以外のquery、mutationはどうですか?

小笠原 京平 | 株式会社Tsun | RuffRuff アプリ
・私の回答が役に立ったら、いいね! ボタンをクリックして教えてください!
Shopify 開発で役に立つ情報を発信していますので、テックブログおすすめ Shopifyアプリ もぜひご参照ください。
kamiyama
新規メンバー
9 0 0

現在、他の手法での動作確認を実施中となります。

また、別件となりますが、以前からサンプルコマンドとして頂いておりました

 ドメイン情報について、全て【〇〇〇.myshopify.com】という形で頂いておりましたが、こちらが把握しているドメイン情報は【〇〇〇.jp】となっておりました。
 参照先となるドメインの情報がそもそも間違っているなどはございますでしょうか。

ogasawarakyohei
Shopify Partner
114 44 42

myshopify.comドメインにクエリを実行してなかったということであってますか?

また、そもそもShopifyのGraphQL Admin APIを実行したいという認識であってますか?

ShopifyのGraphQL Admin APIを実行したいのであれば、公式リファレンスのとおりmyshopify.comドメインを使います。

私の知識不足で申し訳ないのですが、myshopify.comドメイン以外でできるのかわかりません。

 

こちらが把握しているドメイン情報は【〇〇〇.jp】

 

ちょっとよくわからなくなってきましたが、ストアの独自ドメインは把握していて、myshopify.comドメインは知らないという話ですか?

Shopifyで構築しているストアなら独自ドメインがわかればmyshopify.comドメインもわかりますけど。

小笠原 京平 | 株式会社Tsun | RuffRuff アプリ
・私の回答が役に立ったら、いいね! ボタンをクリックして教えてください!
Shopify 開発で役に立つ情報を発信していますので、テックブログおすすめ Shopifyアプリ もぜひご参照ください。
kamiyama
新規メンバー
9 0 0

改めて確認してmyshopify.comのドメイン情報でBulkOperationRunQuery」が実行でき、ダウンロードURLを取得することが出来ました。

 

しかし、ファイルダウンロードした際に以下のようなエラーメッセージが表示されました。「<?xml version='1.0' encoding='UTF-8'?><Error><Code>SecurityPolicyViolated</Code><Message>Request violates VPC Service Controls.</Message><Details>Request is prohibited by organization's policy. vpcServiceControlsUniqueIdentifier: fCD2qbPjxXP30qs2LxFQOTZpEcHNBmEjnnK7qTukwwNLCUqBpEolQQ</Details></Error>


ダウンロードURLからファイルを取得する際に参照権限設定を行う必要がございます。
shopifyでファイルを格納している先はgoogle Cloud Storage と認識しております。格納されているプロジェクトIDを教えていただくことは可能でしょうか。

ogasawarakyohei
Shopify Partner
114 44 42

shopifyでファイルを格納している先はgoogle Cloud Storage と認識しております。

 

合っています。

 

> 格納されているプロジェクトIDを教えていただくことは可能でしょうか。

 

Shopifyが管理している部分ですので私は知りません。

 

お力になれず申し訳ないのですが、上記エラーは見たことがないので、Shopifyサポートに問い合わせてみてはどうでしょうか。

小笠原 京平 | 株式会社Tsun | RuffRuff アプリ
・私の回答が役に立ったら、いいね! ボタンをクリックして教えてください!
Shopify 開発で役に立つ情報を発信していますので、テックブログおすすめ Shopifyアプリ もぜひご参照ください。