LINE WORKS API のトークン管理が柔軟になった
トークンの再発行
LINE WORKS API のアクセストークンに関するアップデートがありました。
[リリース]アップデートおよび動作変更・提供終了予定のお知らせ(12月6日)
LINE WORKS API を利用するには、アクセストークンが必要です。アクセストークンは有効期限が限られているため、定期的に再発行する必要があります。
リフレッシュトークン再発行による継続利用
従来、リフレッシュトークンを用いてアクセストークンを再発行しても、リフレッシュトークン自体は更新されませんでした。これまでは、リフレッシュトークンの有効期限は 90 日で、期限が切れると、再度認証を行う必要がありました。
今回のアップデートにより、リフレッシュトークンを用いたトークン再発行時に、リフレッシュトークンも同時に再発行されるようになりました。これにより、再認証の手間なく、API を継続して利用することが可能になります。
アクセストークンの有効期限を選択可能に
また、アクセストークンの有効期限も、1 時間と 24 時間のいずれかを選択可能になりました。
今回は、LINE WORKS の API トークン再発行を Google Colab で試して、追加された設定によるレスポンスの差異を確認してみました。
Google Colabでトークンを再発行する
Google Colab を使用すると、ブラウザ上で Python のコードを実行できます。今回は、Google Colab 上で LINE WORKS API のトークンを再発行するスクリプトを こちら で共有しています。
この Colab ノートブックを開いて、以下の手順でトークンを再発行できます。
- 必要な情報を入力します。
- スクリプトを実行します。
事前準備:
- スクリプトを実行する前に、LINE WORKS Developer Console でアプリを作成し、
client_id
、client_secret
、refresh_token
を取得しておく必要があります。
スクリプト解説
共有した Colab ノートブックでは、以下のスクリプトを使用しています。
import json
import requests
# --- 必要な情報を入力 ---
client_id = "YOUR_CLIENT_ID" # @param {type:"string"}
client_secret = "YOUR_CLIENT_SECRET" # @param {type:"string"}
refresh_token = "YOUR_REFRESH_TOKEN" # @param {type:"string"}
# --- Access Token 再発行のリクエスト ---
url = "[https://auth.worksmobile.com/oauth2/v2.0/token](https://auth.worksmobile.com/oauth2/v2.0/token)"
headers = {"Content-Type": "application/x-www-form-urlencoded"}
data = {
"grant_type": "refresh_token",
"client_id": client_id,
"client_secret": client_secret,
"refresh_token": refresh_token,
}
response = requests.post(url, headers=headers, data=data)
# --- レスポンスの処理 ---
if response.status_code == 200:
response_json = response.json()
access_token = response_json["access_token"]
print(f"新しい Access Token: {access_token}")
if "refresh_token" in response_json:
new_refresh_token = response_json["refresh_token"]
print(f"新しい Refresh Token: {new_refresh_token}")
# response の body を整形して出力
print("\nResponse Body:")
print(json.dumps(response_json, indent=4)) # インデントをつけて見やすく表示
else:
print(f"エラーが発生しました: {response.status_code} {response.text}")
トークン設定によるレスポンスの違い
LINE WORKS Developer Console のトークン設定は、アクセストークンの有効期限やリフレッシュトークンの動作に影響を与えます。以下は設定ごとのレスポンスの違いを説明します。
設定項目
-
Access Token
の有効期限-
1 hour
: アクセストークンの有効期限が1時間。 -
24 hours
: アクセストークンの有効期限が24時間。
-
-
Refresh Token Rotation
-
ON:
- アクセストークン再発行時に、新しいアクセストークンとリフレッシュトークンが発行される。
- 最大100個のトークンが有効。それを超えたものは無効化される。
-
OFF:
- アクセストークン再発行時に、新しいアクセストークンのみが発行される。
- 新しいアクセストークンが発行されると、以前のトークンは無効化される。
-
ON:
レスポンス例
ケース1: Access Token
有効期限が 1時間 (1 hour
), Refresh Token Rotation
が ON
{
"access_token": "sample_access_token_1",
"refresh_token": "sample_refresh_token_1",
"scope": "bot",
"token_type": "Bearer",
"expires_in": "3600"
}
ケース2: Access Token
有効期限が 24時間 (24 hours
), Refresh Token Rotation
が ON
{
"access_token": "sample_access_token_2",
"refresh_token": "sample_refresh_token_2",
"scope": "bot",
"token_type": "Bearer",
"expires_in": "86400"
}
ケース3: Access Token
有効期限が 24時間 (24 hours
), Refresh Token Rotation
が OFF
{
"access_token": "sample_access_token_3",
"scope": "bot",
"token_type": "Bearer",
"expires_in": "86400"
}
まとめ
LINE WORKS API のトークン再発行が柔軟になりました。用途や、運用方針に応じた設定でトークン管理を行う事が可能です。
Google Colab で設定によるレスポンスの差異についても、共有した Colab ノートブックを使って確認することができます。
参考資料