开发者社区> 问答> 正文

钉钉机器人接口重复推送

DingTalkClient client = new DefaultDingTalkClient(sendUrl + "&timestamp=" + timestamp + "&sign=" + sign);

OapiRobotSendRequest request = new OapiRobotSendRequest();

...
client.execute(request);

推送成功后,钉钉机器人会一次发送两条消息,其中一条正常,一条图片无法正常显示。
正常来说只会推送一条的才对,这个可能是什么原因?
使用自己写的计划任务定时推送,看任务执行记录只触发了一次,以前功能都是正常的,最近才开始出现的重复推送的问题。

展开
收起
游客47abpnyd2r7by 2023-11-08 14:57:45 194 0
3 条回答
写回答
取消 提交回答
  • 您可以在您的程序中添加一个状态变量来记录是否已经发送过的消息,当检测到相同的机器人推送时则跳过发送
    使用数据库来进行记录和查询,记录已经发送过的消息,如果数据库中有相同的消息,则不再发送
    使用钉钉提供的签名和安全令牌来进行验证和防止恶意攻击
    使用钉钉 SDK 的方法来实现防重复推送的功能

    2023-11-12 14:10:58
    赞同 展开评论 打赏
  • 从你给出的代码片段来看,你可能正在使用阿里巴巴的钉钉机器人进行消息推送。你的问题描述中提到,你的代码在执行后,钉钉机器人会重复推送消息,一条正常,一条图片无法正常显示。

    这个问题可能由以下几个原因导致:

    1. 重复执行: 你的计划任务可能已经重复执行了相同的命令,也就是说你的任务执行记录可能已经包含了重复的执行。你需要检查你的计划任务设置,确保它们没有重复执行相同的命令。
    2. 代码问题: 在你的代码中,可能存在某种条件或逻辑错误,使得消息被重复发送。你需要仔细检查你的代码,特别是与消息发送相关的部分。
    3. 钉钉机器人设置问题: 在某些情况下,钉钉机器人可能会默认进行重复推送。你需要检查你的机器人设置,看看是否存在这样的设置选项。
    4. 网络问题: 如果网络连接不稳定或者存在延迟,也可能会导致消息被重复发送。
    5. API调用问题: 如果你是通过API调用发送消息,那么也有可能是API的错误或者不稳定导致的。
    2023-11-09 16:20:03
    赞同 展开评论 打赏
  • 出现这种情况的原因有很多,有可能是因为发送的消息内容相同,钉钉可能会过滤重复的消息,因此只能发送一条消息。可以考虑以下几个排查方向:

    • 根据返回结果判断是否发送成功,如果没有返回失败或者成功,可能出现了网络问题;
    • 优化参数签名算法,检查算法是否有重复,避免重复签名;
    • 如果您的代码中存在多次执行该方法的情况,请检查循环或其他可能引发执行次数的因素。
    2023-11-08 17:03:01
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
+ 订阅
问答排行榜
最热
最新

相关电子书

更多
下一代服务机器人的应用和创新 立即下载
机器人的小脑SLAMWARE - 机器人自主定位导航系统 立即下载
AIOps的核心技术之一:任务机器人如何在金融运维 运营中落地 立即下载