FROM CACHE - jp_header
解決済

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

hiromura
遊覧客
21 1 5

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

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

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

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

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

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

 

 

2 件の受理された解決策
_osamu_iwasaki_
Shopify Partner
185 47 193

成功

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

元の投稿で解決策を見る

_osamu_iwasaki_
Shopify Partner
185 47 193

成功

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

 

 

元の投稿で解決策を見る

6件の返信6

_osamu_iwasaki_
Shopify Partner
185 47 193

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

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

hiromura
遊覧客
21 1 5

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

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
185 47 193

成功

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

hiromura
遊覧客
21 1 5

下記の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
185 47 193

成功

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

 

 

hiromura
遊覧客
21 1 5

ありがとうございます。

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

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

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