function SendMsg(_id,content,_hmp) {
threads.start(function() {
try {
var response = null;
var retryCount = 0;
var maxRetries = 3;
var retryDelay = 1000; // 延迟重试时间(毫秒)

    while (retryCount < maxRetries) {
      response = http.request('https://api.hamibot.com/v1/robots/' + _id + '/messages', {
        method: 'POST',
        contentType: 'application/json',
        headers: {
          authorization: '_hmp',
        },
        body: JSON.stringify({ title: '喊话内容', text: content }),
      });

      if (response.statusCode == 204) {
        var result = response.body.string();
        log('网络请求的响应:' + result);
        return; // 请求成功,退出循环
      } else {
        log('网络请求失败,状态码:' + response.statusCode);
        retryCount++;
        java.lang.Thread.sleep(retryDelay);; // 延迟重试
      }
    }

    log('网络请求超过最大重试次数');
  } catch (e) {
    if (e instanceof java.io.InterruptedIOException) {
      // 处理中断异常
      log('网络请求中断异常:' + e);
    } else {
      // 处理其他异常
      log('网络请求发生异常:' + e);
    }
  }
});

}
以上是我写的一个方法,尝试了各种方法.弄了一天了,还是没能消息推送成功一次,按道理很简单的问题,我都开始怀疑自己了.

已存档
老杨 · 2 年前
第 1 条补充
·
2 年前

authorization: '_hmp',这里应该是authorization: _hmp,

第 2 条补充
·
2 年前

我就请求一次.但是总是发送给我请求异常:请求速录超过限制了.太奇怪了

回答

神秘机师
2.27k
· 2 年前

参考一下
curl -X POST -H "Authorization: <你的令牌(hmp开头)>" -H "Content-Type: application/json" -d '{"title": "标题", "text": "消息内容"}' https://api.hamibot.com/v1/robots/<你的机器人ID(确保和令牌是同一账户,且是在线的)>/messages
curl -X POST -H "Authorization: hmp_xxxxxxxxxxxx" -H "Content-Type: application/json" -d '{"title": "标题", "text": "消息内容"}' https://api.hamibot.com/v1/robots/xxxxxxxxxxxxxxx/messages

老杨 · 2 年前

以解决 ,是参数问题,