Liquid、JavaScriptなどに関する質問
ShopifyAPIに詳しい方教えてください。
私共の使用している唯一のプライベートアプリで下記の様な警告が出ています。
「開発者が4月 1, 2021より前にあなたの利用しているプライベートアプリを更新する必要があります」
現在のWebhook APIのバージョンは「2019-4」になっています。
プルダウンで2021-01が選択でき一度テストをしてみたいのですが、その後、検証のため2019-4戻すことはできますでしょうか?
戻せないと困るので躊躇しています。
解決済! ベストソリューションを見る。
成功
REST APIの場合、バージョンをつけたURLがドキュメントに記載されています。
GET /admin/api/2021-01/orders.json
GET /admin/api/2021-01/orders/{order_id}.json
https://shopify.dev/docs/admin-api/rest/reference/orders/order
バージョンがURLに記載されてあれば、外部サーバからJsonを取得できるようになります。
ドキュメントには記載されていないのですが、
バージョンがURLに記載されていなくても、管理画面にログインしているブラウザであれば取得できるようです。
(取得できる内容に多少差異があるように思えますが)
これはAPIのバグなのかセキュリティホールなのかは私にも分かりません。
現段階で管理者用に使っているだけであれば問題ないかもしれませんが。
成功
返ってくるヘッダ情報も見てみないと原因は掴めませんが、1つ気になるのが、 since_id のパラメータです。
「指定した注文IDの後の情報を表示する」パラメーターですが、時系列が合ってなければ出てこないと思います。
https://shopify.dev/docs/admin-api/rest/reference/orders/order
あとは注文がクローズされている場合も出てきませんので、status=any をつけて試すのも手です。
GET /admin/api/2021-04/orders.json?status=any
管理画面でAPIのバージョンの選択は出来たと思いますが、APIを利用しているアプリ側も合わせて更新する必要があります。
APIのバージョンを戻す意味はちょっと分からないですが、テストということであればもう一つテスト用の開発ストアを作り、そちらで試してから本番環境で実装されたほうが良いと思います。
ありがとうございました。いただいた内容をもとに調査しました。
Webhook APIのバージョンを2021-01にして数日様子を見ましたが問題なく動いています。
ここで一つ質問があるのですがプライベートアプリ側では受注データのみをAPIで取得しており
現在まで、SHOPIFYから取得したキーを設定して、APIに、下記のようにアクセスして問題なく必要なデータを取得しています。
$shopify_key='93dxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx523@xxxxxxxxxxxxxxx.myshopify.com';
$url='https://'.$shopify_key.'/admin/orders.json?';
今回、2021年4月1日から「バージョンを指定する必要がある」との事ですが、上のAPIキーに埋め込んで指定するような
ことなのでしょうか?
成功
REST APIの場合、バージョンをつけたURLがドキュメントに記載されています。
GET /admin/api/2021-01/orders.json
GET /admin/api/2021-01/orders/{order_id}.json
https://shopify.dev/docs/admin-api/rest/reference/orders/order
バージョンがURLに記載されてあれば、外部サーバからJsonを取得できるようになります。
ドキュメントには記載されていないのですが、
バージョンがURLに記載されていなくても、管理画面にログインしているブラウザであれば取得できるようです。
(取得できる内容に多少差異があるように思えますが)
これはAPIのバグなのかセキュリティホールなのかは私にも分かりません。
現段階で管理者用に使っているだけであれば問題ないかもしれませんが。
下記のURLでAPIから注文データを取得していました。
https://<shop>.myshopify.com/admin/orders.json?since_id=3716884791485&limit=50&page=2
先日上記のような返事をいただき、4月に入っても正常に動作しており安心しておりました。しかしその後
4月8日まで正常に取得できていましたが、それ以降、オーダー情報が取得できなくなりました。
下記のようにAPIバージョンを設定しても結果は同じで取得できません。
admin/api/2021-01/orders.json?since_id=3716884791485&limit=50&page=1
jsonは下記のように帰ってきますので、接続はできているようですが、受注データが空です。
※念のためテスト用に実際に注文しましたが、そのデータも取得できません。
Array
(
[orders] => Array
(
)
)
それとSHOPIFYの管理画面にログイン中に同じブラウザのアドレスバーに取得用のURLをコピペしても
アクセスは拒否されます。
原因は何でしょうか、ご教示をお願いいたします。
成功
返ってくるヘッダ情報も見てみないと原因は掴めませんが、1つ気になるのが、 since_id のパラメータです。
「指定した注文IDの後の情報を表示する」パラメーターですが、時系列が合ってなければ出てこないと思います。
https://shopify.dev/docs/admin-api/rest/reference/orders/order
あとは注文がクローズされている場合も出てきませんので、status=any をつけて試すのも手です。
GET /admin/api/2021-04/orders.json?status=any
ありがとうございます。
ページングができないようになったのですね。
教えていただいた情報をもとに無事更新することができました。
ありがとうございました!
YouTubeは世界で2番目にアクセス数の多いウェブサイトであり、80カ国語、100カ国以上からのアクセスがあります。米国では、1日で10億時間以上のコンテンツが視聴されているそう...
By rinaflora Jun 4, 2023ゴムの街とも呼ばれる久留米の老舗工場で作成されたスニーカーを販売しているPERSICAストア。Shopifyを選ぶ理由と商品への思い。
By Mirai May 29, 2023EコマースのEメールマーケティングは適切なタイミングで、適切にパーソナライズされたメッセージを顧客に届ける方法であり、厳しさを増すインターネットの規制を受ける必要もありません。こ...
By Nanami May 21, 2023