Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

使用自建应用机器人发送消息出现偶发性错误【Invalid access token for authorization】 #111

Open
abstain23 opened this issue Nov 14, 2024 · 5 comments

Comments

@abstain23
Copy link

const feishuClient = new lark.Client({
    appId: process.env.APP_ID || '',
    appSecret: process.env.APP_SECRET || '',
    disableTokenCache: false,
    loggerLevel: lark.LoggerLevel.error
  })

feishuClient.im.message.create ...

appid 和 appSecret是在环境变量传过去的,能保证是存在的,并且上一条消息是发送成功的,下一条就出现发送失败,token鉴权失败问题
image

@abstain23
Copy link
Author

这个完全是偶发性的,不知道什么时候会出现这个问题

@mazhe-nerd
Copy link
Collaborator

可以给一个可复现的demo代码和sdk的版本不?

@abstain23
Copy link
Author

版本 @larksuiteoapi/node-sdk": "^1.37.2"
没有办法稳定复现,偶发出现,我这边用的方式大概就是,注册路由的时候生成一个client,如下:

const feishuClient = new lark.Client({
    appId: process.env.APP_ID || '',
    appSecret: process.env.APP_SECRET || '',
    disableTokenCache: false,
    loggerLevel: lark.LoggerLevel.error
  })

然后接口请求的时候,使用上面的client发送消息给用户

feishuClient.im.message.create({
              params: {
                receive_id_type: 'email'
              },
              data: {
                receive_id: ctx.body.email,
                content: JSON.stringify({}),
                msg_type: 'interactive'
              }
            })

大概代码如上,主要问题是我们这边一天大概会发送几千条消息,上一条消息看了是成功的,某些时候下一条会出现上面token问题发送失败

@mazhe-nerd
Copy link
Collaborator

GET,感谢,我这边尝试先复现一下;

可以先做个失败重试机制,请求失败的话在请求一下,先解决业务问题;

如果方便的话,可以抓一下这个获取token接口的log id:/open-apis/auth/v3/tenant_access_token/internal,出现上面报错看起来是这个接口返回的token有些问题,抓到了定位会精准点儿。

@abstain23
Copy link
Author

GET,感谢,我这边尝试先复现一下;

可以先做个失败重试机制,请求失败的话在请求一下,先解决业务问题;

如果方便的话,可以抓一下这个获取token接口的log id:/open-apis/auth/v3/tenant_access_token/internal,出现上面报错看起来是这个接口返回的token有些问题,抓到了定位会精准点儿。

请问如何抓这个token接口的log id,用的sdk是没有直接调用接口了,目前是做了一次重试,看日志失败后,重试是ok的

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants