You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

游戏机器人回调按钮无响应,如何实现点击后返回用户ID的功能?

游戏机器人回调按钮无响应,如何实现点击后返回用户ID的功能?

看起来你在游戏机器人的回调按钮上卡壳了,我来帮你捋捋问题出在哪,以及怎么改才能实现点击按钮返回用户ID的功能~

首先说你代码里最明显的坑:那行if(callback.eventPayload) return;完全写反了逻辑!回调按钮触发的请求里,eventPayload(或者你用的框架里对应的回调数据字段)正是按钮携带的关键标识信息,你这行代码直接把带有这个字段的请求都拦截返回了,那按钮点击的请求根本到不了后面的show_id处理逻辑,自然没响应啊!

然后是事件监听的类型问题,你用了message_event还试过Callback_new,这得看你用的具体机器人框架——不同框架对回调按钮的事件命名不一样,比如有的框架是callback_query,有的是message_event但需要按钮配置正确的payload。你得先确认你用的框架里,回调按钮点击对应的正确事件监听名称,替换掉当前的事件名。

接下来给你修正后的代码示例,你可以参考调整:

// 先确保这里的事件名是你框架对应的回调按钮事件,比如message_event或者callback_query
updates.on('message_event', async (callback) => {
  // 先找到对应用户,避免找不到用户导致报错
  let user = users.find(x => x.id === callback.senderId);
  if (!user) {
    return callback.answer('未找到你的用户信息哦');
  }

  // 匹配按钮的command,这里要和你创建按钮时设置的command一致
  if (callback.command === 'show_id') {
    // 用answer方法返回用户ID,show_alert设为true会弹出提示框,有的框架可能需要不同参数
    return callback.answer(`你的用户ID是:${user.id}`, { show_alert: true });
  }

  // 其他类型的回调可以在这里扩展处理
});

还有几个要注意的细节:

  • 你创建按钮的时候,一定要把按钮的command(或者payload里的标识)设置为show_id,不然回调里的callback.command匹配不到,自然不会触发返回ID的逻辑。
  • 检查users数组里是否正确存储了用户的id数据,如果find返回undefined,会导致后面的user.id报错,所以加个用户存在性判断很有必要。
  • 如果还是没反应,去你用的框架文档里查一下answer方法的参数要求,比如有的框架需要指定返回的消息类型,或者是否需要额外的配置才能触发弹窗/消息。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.07 10:07:59