Skip to content

Commit

Permalink
fix(lark): refresh access token by 100 minutes, fix #310
Browse files Browse the repository at this point in the history
  • Loading branch information
shigma committed Dec 26, 2024
1 parent 8f52b5d commit de3ac50
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 5 deletions.
2 changes: 1 addition & 1 deletion adapters/lark/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@satorijs/adapter-lark",
"description": "Lark (飞书) Adapter for Satorijs",
"version": "3.8.3",
"version": "3.8.4",
"type": "module",
"main": "lib/index.cjs",
"types": "lib/index.d.ts",
Expand Down
10 changes: 6 additions & 4 deletions adapters/lark/src/bot.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Bot, Context, h, HTTP, Schema, Universal } from '@satorijs/core'
import { Bot, Context, h, HTTP, Schema, Time, Universal } from '@satorijs/core'

import { HttpServer } from './http'
import { LarkMessageEncoder } from './message'
Expand Down Expand Up @@ -71,10 +71,12 @@ export class LarkBot<C extends Context = Context> extends Bot<C, LarkBot.Config>
})
this.logger.debug('refreshed token %s', token)
this.token = token
// Token would be expired in 2 hours, refresh it every 1 hour
// see https://open.larksuite.com/document/ukTMukTMukTM/ukDNz4SO0MjL5QzM/auth-v3/auth/tenant_access_token_internal
// tenant_access_token 的最大有效期是 2 小时。
// 剩余有效期小于 30 分钟时,调用本接口会返回一个新的 tenant_access_token,这会同时存在两个有效的 tenant_access_token。
// 剩余有效期大于等于 30 分钟时,调用本接口会返回原有的 tenant_access_token。
// https://open.feishu.cn/document/server-docs/authentication-management/access-token/tenant_access_token_internal
if (this._refresher) clearTimeout(this._refresher)
this._refresher = setTimeout(() => this.refreshToken(), 3600 * 1000)
this._refresher = setTimeout(() => this.refreshToken(), Time.minute * 100)
this.online()
}

Expand Down

0 comments on commit de3ac50

Please sign in to comment.