質問: Shopify App を作成しています。 サーバー側で Access Token を取得していますが、access mode (online mode or offline mode) によって取得できる情報とトークンの利用可能時間が異なるかと思います。 offline mode はアクセストークンの期限なしですが、ユーザー固有の情報 (email など) は取得できない。 online mode はアクセストークンは約1日で期限切れになるが、ユーザー固有の情報が取得できる。 offline mode でアクセストークンを取得しつつ、online mode でユーザー固有の情報を取得できるのを確認していますが、その場合それぞれの認証が必要なので、2度認証が必要となっています。 質問は、 - そもそも online mode, offline mode の認識は間違っていないか - 上記のケースの場合2度必要となっている認証を1度にする方法はあるか になります。よろしくお願いします。
回答: > offline mode はアクセストークンの期限なしですが、ユーザー固有の情報 (email など) は取得できない。 > online mode はアクセストークンは約1日で期限切れになるが、ユーザー固有の情報が取得できる。 > こちらはどこに記載のあるものでしょうか? 両方とも Access Tkoken API のレスポンス内容から推察になります。 指定しない場合(デフォルト)は以下のようなレスポンス ``` { access_token: '459e7c8eaa40facd06822a411d5xxxxx', scope: 'read_products,read_orders' } ``` grant_options[]=per-user を指定した場合 ``` { access_token: 'd45969826b9e79432cbdd79bfdeaxxxx', scope: 'read_products', expires_in: 86398, associated_user_scope: 'read_products', session: '2fad3bb49a547ff0a118664627ce4b9911984b99e30df27827e5689856d5xxxx', associated_user: { id: 41524035710, first_name: 'Saito', last_name: 'Masahiro', email: 'test@test.com', account_owner: true, locale: 'ja-JP', collaborator: false, email_verified: true } } ``` のようになっていまして、`expires_in` が Token の利用可能期間だと推察していました。 が、Okamura さんがコメントされている associated_user_scope は知らなかったので、確認したいと思います。