前置き
以前ChatWorkMentionTaskというアプリを作った時に
ChatWorkのAPIのリフレッシュトークンの有効期限は2週間なので、リフレッシュトークンが切れる3日前にリマインド用にタスクを作るようにした
って書いたのですが、ChatWork本家でリフレッシュトークンの有効期限が無期限に設定できるようになったということなので小躍りして対応しました。ヒャッホウ!
参考
対応方法
OAuthクライアントの設定に「永続的なAPIアクセスの許可」が増えているのでこいつをチェックして保存
omniauth-chatwork であれば scope
に offline_access
を足すだけ。
Rails.application.config.middleware.use OmniAuth::Builder do provider :chatwork, ENV["CHATWORK_CLIENT_ID"], ENV["CHATWORK_CLIENT_SECRET"], scope: ["users.profile.me:read", "rooms.tasks:write", "rooms.info:read", "offline_access"] end
ChatWorkMentionTaskの本番に適用する前に試したけど、offline_access
を有効にした後も既存のアクセストークンやリフレッシュトークンは問題なく使えたのでサクッと変更していいんじゃないかと思います。
ChatWorkMentionTaskの仕様変更について
リフレッシュトークンの有効期限がなくなったので、リフレッシュトークンが切れる3日前のリマインド用にタスク作成はなくします。
(現状リフレッシュトークンが14日間のままのユーザがまだ何人かいるので機能の削除自体はもうちょい先になりますが)