Shopifyアプリのためのオプショナルスコープの設定

Shopifyアプリ開発における一つの課題は、ストア毎に異なるアクセススコープを要求する設定の複雑さです。また、一度付与されたスコープを取り消すための方法も必要です。これらの課題を解決するために、ShopifyのAdmin APIバージョン2024-10では、新たにoptional_scopesというアプリ設定が導入されました。

オプショナルスコープとは

オプショナルスコープを使用すると、以下のことが可能になります:

  • 必要なスコープとオプショナルなスコープを分ける
  • ストア毎に異なるアクセススコープを要求する
  • ストアからアプリへ付与されたオプショナルスコープを取り消す
  • アプリのランタイムでスコープを要求・取り消す

これらの機能を使用することで、Shopifyの管理するインストールを活用することができます。

オプショナルスコープの宣言方法

あなたのアプリ設定内で、アプリが要求する可能性のあるオプショナルスコープを宣言します。これは、アプリの必要なscopesに加えて指定します。

[access_scopes]
scopes = "read_products"
optional_scopes = [ "write_products", "read_discounts", "read_themes" ]

ランタイムでのオプショナルスコープの要求、取り消し、問い合わせ

オプショナルスコープを使用すると、アプリは商人に対してサーバーサイドAPIまたはクライアントサイドのApp Bridge APIを通じてアクセスを許可するように要求することができます。詳細はアクセススコープの動的な要求の方法を参照してください。

付与されたオプショナルスコープは、アプリによってストアから動的に取り消すことができます。このためのrevokeメソッドと、GraphQLのappRevokeAccessScopesミューテーションを提供しています。

オプショナルスコープを使用すると、アプリは現在のストアにどのスコープが付与されているかを知る必要があります。これにはqueryメソッドを使用します。また、アプリは手動でAppInstallationオブジェクトのaccessScopesフィールドを問い合わせることもできます。

オプショナルスコープについてさらに学ぶ

オプショナルスコープについてさらに詳しく知りたい場合は、アクセススコープの管理方法を参照してください。また、クライアントサイドのApp Bridge Scopes APIや、サーバーサイドのRemix Scopes APIも参考になります。

参考記事: Configure optional scopes for Shopify apps