FROM CACHE - jp_header
このコミュニティはピアツーピアサポートに移行しました。Shopify サポートは今後、このコミュニティへのサービスを提供いたしません。これからもぜひ、他のマーチャントやパートナーとつながり、サポートし合い、経験を共有してください。 当社の行動規範に違反する行動や削除を希望するコンテンツがありましたら、引き続きご報告ください

Re: Shopify App とアクセストークンについて

Shopify App とアクセストークンについて

camelmasa
Shopify Partner
83 10 27

Shopify App を作成しています。

サーバー側で Access Token を取得していますが、access mode (online mode or offline mode) によって取得できる情報とトークンの利用可能時間が異なるかと思います。

 

https://shopify.dev/concepts/about-apis/authentication#api-access-modes

offline mode はアクセストークンの期限なしですが、ユーザー固有の情報 (email など) は取得できない。

online mode はアクセストークンは約1日で期限切れになるが、ユーザー固有の情報が取得できる。

 

offline mode でアクセストークンを取得しつつ、online mode でユーザー固有の情報を取得できるのを確認していますが、その場合それぞれの認証が必要なので、2度認証が必要となっています。

 

質問は、

 

- そもそも online mode, offline mode の認識は間違っていないか

- 上記のケースの場合2度必要となっている認証を1度にする方法はあるか

 

になります。よろしくお願いします。

3件の返信3

junichiokamura
Community Manager
1201 280 509

> offline mode はアクセストークンの期限なしですが、ユーザー固有の情報 (email など) は取得できない。

> online mode はアクセストークンは約1日で期限切れになるが、ユーザー固有の情報が取得できる。

 

こちらはどこに記載のあるものでしょうか? 認可で何も指定しない場合(デフォルト)はofflineで、上記のページにあるようにassociated_user_scopeを指定した場合はonlineになり、それはアプリ側に任されているかと思います。

Senior Partner Solutions Engineer
camelmasa
Shopify Partner
83 10 27

> 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 は知らなかったので、確認したいと思います。

camelmasa
Shopify Partner
83 10 27

> online mode はアクセストークンは約1日で期限切れになるが、ユーザー固有の情報が取得できる。

 

こちらに記載ありました。
https://shopify.dev/tutorials/authenticate-with-oauth#step-3-confirm-installation

 

expires_in: The number of seconds until the access token expires.

とあるので、online mode で取得したトークンは期限切れになりそうですね。