larksuite / node-sdk

larksuite open sdk for nodejs
MIT License
131 stars 26 forks source link

appTableRecord.create 接口更新fields插入失败 #95

Closed ivanberry closed 1 week ago

ivanberry commented 1 week ago

官网调试API,新增正常。

复制实例新增记录,新增成功,但是fields不符合预期

const fields = new Map([
                ['名称', '123']
])
[05:05:20.216] INFO (3792984): request completed
    reqId: "req-1"
    res: {
      "statusCode": 200
    }
    responseTime: 166.63348799943924
{
  code: 0,
  data: {
    record: { fields: {}, id: 'recuhCSsdsdsdsdWqF41AE', record_id: 'recuhCdfdafafSWqF41AE' }
  },
  msg: 'success'
}
mazhe-nerd commented 1 week ago

fields换成Object的类型试试?

ivanberry commented 1 week ago
image

OK了,那你们这个文档这里要更新了

mazhe-nerd commented 1 week ago

感谢同学反馈~下个版本我更正一下

ivanberry commented 1 week ago

额外 请教以下,服务端SDK需要如何维持access_token的自动刷新,看文档只看到了 网页应用授权码的模式。


    const client = new lark.Client({
        appId: 'a',
        appSecret: 'b',
        disableTokenCache: false
    });

        client.bitable.appTableRecord.create({
        path: {
            app_token: 'KbiYba3SRao3y9sUaNocYK8EnZd',
            table_id: 'tblpWArrSU2W8G0J',
        },
        data: {
            fields: _fields,
        },
    },
    lark.withUserAccessToken("u-ccccc")
).then(res => {
    console.log(res);
});

过一点时间就会过期

mazhe-nerd commented 1 week ago

如果是tenant-access-token,sdk内部会自己维护,不需要关心,这行代码可以去掉:lark.withUserAccessToken("u-ccccc")。 如果是user-access-token,目前SDK没有自动管理的能力,需要对照文档手动来写管理的逻辑。不过下一个Minor版的包会加上user-access-token的管理,可以参考下pr里的实现:https://github.com/larksuite/node-sdk/pull/92/files#diff-b4b7994bc22f8ec0c503e59a6b1a13f6b06a46c63dbb0146967b48a3ba74bc8f

ivanberry commented 1 week ago

非常感谢