hlxwell / hubot-lark

Hubot Adapter for Lark
0 stars 0 forks source link

接收到消息后报错 TypeError: Cannot read property 'toString' of undefined #4

Closed 743v45 closed 2 years ago

743v45 commented 3 years ago

hubot-lark: v0.2.3

报错信息

TypeError: Cannot read property 'toString' of undefined
  at new User (/disk/ssd1/app/notify-bot/node_modules/hubot/src/user.js:33:27)
  at new CoffeeScriptCompatibleClass (/disk/ssd1/app/notify-bot/node_modules/hubot/index.js:21:22)
  at /disk/ssd1/app/notify-bot/node_modules/hubot-lark/src/webhook_service.coffee:39:7, <js>:53:16
  at Layer.handle [as handle_request] (/disk/ssd1/app/notify-bot/node_modules/express/lib/router/layer.js:95:5)
  at next (/disk/ssd1/app/notify-bot/node_modules/express/lib/router/route.js:137:13)
  at Route.dispatch (/disk/ssd1/app/notify-bot/node_modules/express/lib/router/route.js:112:3)
  at Layer.handle [as handle_request] (/disk/ssd1/app/notify-bot/node_modules/express/lib/router/layer.js:95:5)
  at /disk/ssd1/app/notify-bot/node_modules/express/lib/router/index.js:281:22
  at Function.process_params (/disk/ssd1/app/notify-bot/node_modules/express/lib/router/index.js:335:12)
  at next (/disk/ssd1/app/notify-bot/node_modules/express/lib/router/index.js:275:10)
  at /disk/ssd1/app/notify-bot/node_modules/body-parser/lib/read.js:130:5
  at invokeCallback (/disk/ssd1/app/notify-bot/node_modules/raw-body/index.js:224:16)
  at done (/disk/ssd1/app/notify-bot/node_modules/raw-body/index.js:213:7)
  at IncomingMessage.onEnd (/disk/ssd1/app/notify-bot/node_modules/raw-body/index.js:273:7)
  at IncomingMessage.emit (events.js:314:20)
  at endReadableNT (_stream_readable.js:1223:12)
  at processTicksAndRejections (internal/process/task_queues.js:84:21)

接收消息文档 链接

看官方消息结构示例未提供 data.event.user 属性,猜测 lark 更新过版本,hubot-lark 没有适配。请问 owner 有没有更新意向?

hlxwell commented 3 years ago

应该support了。你试试。 f401e1d12f9a3d2ffbf205b8ab7ccee300d58bcc

743v45 commented 3 years ago

hubot-lark version: master

发了个 @bot help

TypeError: Cannot read property 'sender_id' of undefined
  at /disk/ssd1/app/notify-bot/node_modules/hubot-lark/src/webhook_service.coffee:38:36, <js>:50:43
  at Layer.handle [as handle_request] (/disk/ssd1/app/notify-bot/node_modules/express/lib/router/layer.js:95:5)
  at next (/disk/ssd1/app/notify-bot/node_modules/express/lib/router/route.js:137:13)
  at Route.dispatch (/disk/ssd1/app/notify-bot/node_modules/express/lib/router/route.js:112:3)
  at Layer.handle [as handle_request] (/disk/ssd1/app/notify-bot/node_modules/express/lib/router/layer.js:95:5)
  at /disk/ssd1/app/notify-bot/node_modules/express/lib/router/index.js:281:22
  at Function.process_params (/disk/ssd1/app/notify-bot/node_modules/express/lib/router/index.js:335:12)
  at next (/disk/ssd1/app/notify-bot/node_modules/express/lib/router/index.js:275:10)
  at /disk/ssd1/app/notify-bot/node_modules/body-parser/lib/read.js:130:5
  at invokeCallback (/disk/ssd1/app/notify-bot/node_modules/raw-body/index.js:224:16)
  at done (/disk/ssd1/app/notify-bot/node_modules/raw-body/index.js:213:7)
  at IncomingMessage.onEnd (/disk/ssd1/app/notify-bot/node_modules/raw-body/index.js:273:7)
  at IncomingMessage.emit (events.js:182:13)
  at endReadableNT (_stream_readable.js:1094:12)
  at process._tickCallback (internal/process/next_tick.js:63:19)
hlxwell commented 3 years ago

能不能把lark过来的json数据给我看一下?

743v45 commented 3 years ago
{ uuid: '927f6bdb4c27241861eb6f0d54c18057',
  event:
   { app_id: 'cli_a0ffc508cf1361d014',
     chat_type: 'group',
     employee_id: 'a1265e3f',
     is_mention: true,
     lark_version: 'lark/3.46.9',
     message_id: '',
     msg_type: 'text',
     open_chat_id: '<>',
     open_id: '<>',
     open_message_id: '<>',
     parent_id: '',
     root_id: '',
     tenant_key: '2d36537b3e0f975e',
     text: '<at open_id="ou_5dc8a196df42d0520b135a291084143aa">@app-base-hubot</at> help',
     text_without_at_bot: ' help',
     type: 'message',
     union_id: '<>',
     user_agent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36 Lark/3.46.9 LarkLocale/zh_CN ttnet SDK-Version/3.46.28',
     user_open_id: '<>' },
  token: '<>',
  ts: '1619503853.515741',
  type: 'event_callback' }
ptrjeffrey commented 2 years ago

同样的问题 TypeError: Cannot read property 'toString' of undefined at new User (D:\gitlab\hubot-lark\node_modules\hubot\src\user.js:33:27) at new CoffeeScriptCompatibleClass (D:\gitlab\hubot-lark\node_modules\hubot\index.js:21:22) at D:\gitlab\hubot-lark\node_modules\hubot-lark\src\webhook_service.coffee:37:7, :50:16 at Layer.handle [as handle_request] (D:\gitlab\hubot-lark\node_modules\express\lib\router\layer.js:95:5) at next (D:\gitlab\hubot-lark\node_modules\express\lib\router\route.js:137:13) at Route.dispatch (D:\gitlab\hubot-lark\node_modules\express\lib\router\route.js:112:3) at Layer.handle [as handle_request] (D:\gitlab\hubot-lark\node_modules\express\lib\router\layer.js:95:5) at D:\gitlab\hubot-lark\node_modules\express\lib\router\index.js:281:22 at Function.process_params (D:\gitlab\hubot-lark\node_modules\express\lib\router\index.js:341:12) at next (D:\gitlab\hubot-lark\node_modules\express\lib\router\index.js:275:10) at D:\gitlab\hubot-lark\node_modules\body-parser\lib\read.js:130:5 at invokeCallback (D:\gitlab\hubot-lark\node_modules\raw-body\index.js:224:16) at done (D:\gitlab\hubot-lark\node_modules\raw-body\index.js:213:7) at IncomingMessage.onEnd (D:\gitlab\hubot-lark\node_modules\raw-body\index.js:273:7) at IncomingMessage.emit (events.js:333:22) at endReadableNT (_stream_readable.js:1204:12) at processTicksAndRejections (internal/process/task_queues.js:84:21)

ptrjeffrey commented 2 years ago

现在的数据结构长这样子了

data =  {
  schema: '2.0',
  header: {
    event_id: 'af4a343963a28fe08545a221023cacfd',
    token: '',
    create_time: '1644918262332',
    event_type: 'im.message.receive_v1',
    tenant_key: 'xxxxxxxxxxxxxx',
    app_id: 'cli_xxxxxx'
  },
  event: {
    message: {
      chat_id: 'oc_adbbd6f6dc162168e50a59831550f68c',
      chat_type: 'p2p',
      content: '{"text":"ping"}',
      create_time: '1644918262067',
      message_id: 'om_e83fc19f8730cae69df6d9a4b9a612de',
      message_type: 'text'
    },
    sender: {
      sender_id: [Object],
      sender_type: 'user',
      tenant_key: '12f850fbf0cfd75e'
    }
  }
}
hlxwell commented 2 years ago
image

现在的数据结构长这样子了

data =  {
  schema: '2.0',
  header: {
    event_id: 'af4a343963a28fe08545a221023cacfd',
    token: '',
    create_time: '1644918262332',
    event_type: 'im.message.receive_v1',
    tenant_key: 'xxxxxxxxxxxxxx',
    app_id: 'cli_xxxxxx'
  },
  event: {
    message: {
      chat_id: 'oc_adbbd6f6dc162168e50a59831550f68c',
      chat_type: 'p2p',
      content: '{"text":"ping"}',
      create_time: '1644918262067',
      message_id: 'om_e83fc19f8730cae69df6d9a4b9a612de',
      message_type: 'text'
    },
    sender: {
      sender_id: [Object],
      sender_type: 'user',
      tenant_key: '12f850fbf0cfd75e'
    }
  }
}

你看一下你的 sender_id: [Object], 具体是什么内容。秘密都在 Object .

user = new User(
        data.event.sender.sender_id.open_id,
        name: data.event.sender.sender_id.open_id,
        room: data.event.message.chat_id
      )
ptrjeffrey commented 2 years ago

image

现在是这个样子的,好像没有user那个结构体了,是2.0的结构了,现在还多了一个token

hlxwell commented 2 years ago

用 0.2.4 npm 应该就可以了。

ptrjeffrey commented 2 years ago

用 0.2.4 npm 应该就可以了。

image

确实是没有上面的错误了,但是出了另 一个错误,回不了消息

ptrjeffrey commented 2 years ago

我重新开一个issue,这个关了吧