質問
リフレッシュトークンを使用してAPI実行用アクセストークンを更新する際に、HTTP 401エラー("The incoming token has expired")が発生します。期限切れのログイン用アクセストークンをAuthorizationヘッダーに設定し、ボディにリフレッシュトークンを設定してPUTリクエストを実行していますが、この手順は正しいでしょうか?
回答
期限切れのログイン用アクセストークンを使用してAPI実行用アクセストークンを更新すると401エラーが発生するのは想定通りの挙動です。
API実行用のアクセストークンを更新するには、有効期限内のログイン用のアクセストークンが必要です。エンドポイント「https://app.square.hulft.com/v1/rest-api-token」にPUTリクエストを実行する際は、Authorizationヘッダーに有効期限内(60分以内)のログイン用アクセストークンを指定してください。
正しい手順:
1. Login APIを実行してログイン用アクセストークンとリフレッシュトークンを取得
2. ログイン用アクセストークンの有効期限内(60分以内)に、以下の構成でPUTリクエストを実行
- エンドポイント: https://app.square.hulft.com/v1/rest-api-token
- ヘッダー: Authorization: Bearer に有効期限内のログイン用アクセストークンを設定
- ボディ: {"accessToken": "..."} にリフレッシュトークンを設定
・ログイン用アクセストークンとAPI実行用アクセストークンは異なるトークンです
・ログイン用アクセストークンの有効期限は60分で固定です
・リフレッシュトークンの有効期間内(30日)であっても、API実行用アクセストークンを更新する際には、ログイン用アクセストークンの有効期限内(60分)に実行する必要があります
・常に利用可能なログイン用アクセストークンを保持する場合は、前回実行から60分が経過する前に再度Login APIを実行し、新たなログイン用アクセストークンを取得してください
・「個人設定」で確認可能なAPI実行用アクセストークンではなく、Login APIで取得したログイン用アクセストークンを使用してください
コメント
0件のコメント
記事コメントは受け付けていません。