GraphQL Admin API
DelegateAccessToken に
expiresIn フィールド追加
委任トークンの有効期限を秒単位で即時把握できるように
GraphQL Admin API バージョン 2026-04 以降、delegateAccessTokenCreate ミューテーションが返す DelegateAccessToken 型に expiresIn フィールドが追加されました。アプリ開発者はトークンの残り有効秒数をレスポンスから直接取得でき、特に親トークンの TTL を継承するケースで有効期限が把握できなかった問題が解消されます。
1Before / After 図解
2業務に活かせるユースケース
- 課題
- 長時間バッチ処理でトークンが途中失効し、処理が途中で中断する
- 打ち手
-
expiresInを取得してバッチ開始前に残り秒数を確認。不足していれば事前に再発行してから処理を開始する - 効果
- 失効によるエラーを事前回避でき、リトライコストを削減できる
- 技術メモ
- API バージョン 2026-04 以降のエンドポイントを指定すること。
expiresInは整数(秒)で返る
- 課題
- マルチテナント SaaS でショップごとに異なる TTL の委任トークンを管理しており、有効期限をアプリ側で計算・保存していた
- 打ち手
- 発行時のレスポンスから
expiresInを読み取り、そのまま DB へ保存。計算ロジックや推測が不要になる - 効果
- 管理コードを簡素化でき、TTL ずれによる余分なリフレッシュ呼び出しを排除できる
- 技術メモ
- REST Admin API の委任エンドポイントで既に提供されていた値と同一のため、REST との並行利用時も整合性が保たれる
- 課題
-
expiresIn入力を省略して親トークンの TTL を継承させるパターンで、トークンがいつ失効するか判断できなかった - 打ち手
- 入力省略のまま発行し、レスポンスの
expiresInで実際に継承された残り秒数を確認する - 効果
- 継承パターンでも有効期限が把握可能になり、適切な警告やユーザー通知を実装できる
- 技術メモ
- 元記事では「入力を省略した場合に特に有益」と明記されている。入力値を明示した場合でも同様に返る
3技術者向けポイント
| 項目 | 詳細 |
|---|---|
| 対象 API バージョン | GraphQL Admin API 2026-04 以降 |
| 型・フィールド名 |
DelegateAccessToken.expiresIn(整数、単位:秒) |
| 取得方法 |
delegateAccessTokenCreate ミューテーションの返り値に追加するだけ。既存クエリへの破壊的変更なし |
| REST との整合性 | REST Admin API の委任エンドポイントが返す expires_in と同一の値。両 API を併用しても一貫性が保たれる |
| 移行・後方互換 | フィールドの追加のみ。旧バージョンのクエリに影響なし。バージョンを 2026-04 以降に上げると自動で利用可能 |
| 入力省略時の挙動 |
expiresIn 入力を省略した場合、親トークンの残り TTL が継承されレスポンスに返る(元記事に明記) |
ミューテーションの
delegateAccessToken 返り値ブロックに expiresIn を追記するだけで取得できます。既存の accessToken・delegateAccessScopes フィールドとの併用も可能です。具体的なスキーマ定義は Shopify 公式 GraphQL リファレンス でご確認ください。委任トークンの有効期限をリアルタイムに把握できるようになり、トークン失効による処理中断や複雑な TTL 管理コードを根本から排除できます。
Source: https://shopify.dev/changelog/delegateaccesstokencreate-mutation-now-returns-expiresin | 公開日: 2026-04-01






Share:
商品ディスカウント関数にBXGY前提条件が追加
StandardMetaobjectDefinitionTemplateにaccessフィールド追加