无法获取到qq群的图片连接

在沙盒测试正常


q群测试无法获取到图片连接

 try {
        const [image] = h.select(session.elements, 'image')
        const [text] = h.select(session.elements, 'text')
        if (!image && !text) {
          return session.send(`获取表情失败,请重试!`)
        }
        const element = image || text
        const value = element.attrs?.src || element.attrs?.content
        await faceDataBase.addItem({
          key: cache.message,
          createrId: user.id,
          groupId: channel.id,
          type: element.type as 'text' | 'image',
          value: value,
        })
        addFaceChache.delete(`${user.id}-${channel.id}`)
        return session.send(`添加成功`)
      } catch (error) {
        console.error(error);
        return session.send(`添加失败:\n${JSON.stringify(error, null, 2)}`)
      }

请问这是什么原因?qq群和沙盒环境有什么不一致的吗?

2 个赞

qq群测试记录

2 个赞

改成const [image] = h.select(session.elements, 'img')

3 个赞

哦……

这么直接写return session.send(……)

会多个消息ID的吧

……

改成

await session.send(……)
return
1 个赞

return ...... 就可以了

2 个赞

啊,return也是回复吗?

2 个赞

在指令和中间件的回调里,return可以发送消息
指令开发 | Koishi
中间件 | Koishi

2 个赞

我这里是事件监听,我看示例也是调用api回复的
事件系统 | Koishi

2 个赞

你写的功能没有问题,

只是回复的时候会多个msgid……

1 个赞

事件监听器确实不能直接用return回复,所以这个return不影响,可以这么写

3 个赞

八嘎八嘎!

1 个赞


大佬,这个为什么回复失败啊

2 个赞

我在服务器上用linuxqq重新发送消息之后可以继续发图片了。虽然不知道为什么

2 个赞

协议端的问题

2 个赞

建议检查图片链接是否可以访问

1 个赞