FROM CACHE - jp_header

プライベートアプリの更新について

解決済
hiromura
遊覧客
20 1 4

ShopifyAPIに詳しい方教えてください。

私共の使用している唯一のプライベートアプリで下記の様な警告が出ています。

「開発者が4月 1, 2021より前にあなたの利用しているプライベートアプリを更新する必要があります」

現在のWebhook APIのバージョンは「2019-4」になっています。

プルダウンで2021-01が選択でき一度テストをしてみたいのですが、その後、検証のため2019-4戻すことはできますでしょうか?

戻せないと困るので躊躇しています。

 

 

2 件の受理された解決策

ベストソリューション
_osamu_iwasaki_
Shopify Partner
129 33 167

成功

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のバグなのかセキュリティホールなのかは私にも分かりません。
現段階で管理者用に使っているだけであれば問題ないかもしれませんが。

- Blog: https://note.com/osamuiwasaki
- Twitter: https://twitter.com/_osamu_iwasaki_

元の投稿で解決策を見る

_osamu_iwasaki_
Shopify Partner
129 33 167

成功

返ってくるヘッダ情報も見てみないと原因は掴めませんが、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

 

 

- Blog: https://note.com/osamuiwasaki
- Twitter: https://twitter.com/_osamu_iwasaki_

元の投稿で解決策を見る

6件の返信6
_osamu_iwasaki_
Shopify Partner
129 33 167

管理画面でAPIのバージョンの選択は出来たと思いますが、APIを利用しているアプリ側も合わせて更新する必要があります。

APIのバージョンを戻す意味はちょっと分からないですが、テストということであればもう一つテスト用の開発ストアを作り、そちらで試してから本番環境で実装されたほうが良いと思います。

- Blog: https://note.com/osamuiwasaki
- Twitter: https://twitter.com/_osamu_iwasaki_
hiromura
遊覧客
20 1 4

ありがとうございました。いただいた内容をもとに調査しました。

Webhook APIのバージョンを2021-01にして数日様子を見ましたが問題なく動いています。

ここで一つ質問があるのですがプライベートアプリ側では受注データのみをAPIで取得しており

現在まで、SHOPIFYから取得したキーを設定して、APIに、下記のようにアクセスして問題なく必要なデータを取得しています。

$shopify_key='93dxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx523@xxxxxxxxxxxxxxx.myshopify.com';
$url='https://'.$shopify_key.'/admin/orders.json?';


今回、2021年4月1日から「バージョンを指定する必要がある」との事ですが、上のAPIキーに埋め込んで指定するような
ことなのでしょうか?

_osamu_iwasaki_
Shopify Partner
129 33 167

成功

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のバグなのかセキュリティホールなのかは私にも分かりません。
現段階で管理者用に使っているだけであれば問題ないかもしれませんが。

- Blog: https://note.com/osamuiwasaki
- Twitter: https://twitter.com/_osamu_iwasaki_
hiromura
遊覧客
20 1 4

下記の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をコピペしても
アクセスは拒否されます。


原因は何でしょうか、ご教示をお願いいたします。

_osamu_iwasaki_
Shopify Partner
129 33 167

成功

返ってくるヘッダ情報も見てみないと原因は掴めませんが、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

 

 

- Blog: https://note.com/osamuiwasaki
- Twitter: https://twitter.com/_osamu_iwasaki_
hiromura
遊覧客
20 1 4

ありがとうございます。

ページングができないようになったのですね。

教えていただいた情報をもとに無事更新することができました。

ありがとうございました!