当前位置: 首页 > 知识库问答 >
问题:

通知脚本突然开始抛出Slack API Code 400:无效块是否有原因?

冉丰茂
2023-03-14

我让这个脚本工作了三个多月,没有出现任何问题,然而,上周它开始抛出以下内容:

Error   
Exception: Request failed for https://hooks.slack.com returned code 400. Truncated server response: invalid_blocks (use muteHttpExceptions option to examine full response)

我认为这是剧本的相关部分。

  for (let i = 0; i in vistasVencimiento; i++){
    if (vistasVencimiento[i][0] instanceof Date == true){
      let differenceInMs = dateToday - vistasVencimiento[i][0];
      let differenceInDaysRaw = differenceInMs / (1000 * 60 * 60 * 24);

      if(differenceInDaysRaw >= 0 && statusColumn[i] !== "Pendiente_de_despacho"){
        //agregar a array de vencidos
        result.push(sumariantesVistas[i], causasCaratulas[i], '\n');
      }
    }
  };
  console.log(result);
  if (result === undefined || result.length === 0 ){
    let payload ={
    "blocks": [
        {
            "type": "section",
            "text": {
                "type": "mrkdwn",
                "text": ":bell: *Cuales Vistas estan vencidas?* :bell:"
            }
        },
        {
            "type": "section",
            "text": {
                "type": "mrkdwn",
                "text":"Aparentemente, ninguna"
            }
        },
    ]
  }
      let headers = {
      'Content-type': 'application/json'
    };
    let options = {
      headers : headers,
      method: 'POST',
      payload: JSON.stringify(payload)
    };
  UrlFetchApp.fetch(url, options);

  }else{
    let result_string = result.join('\n');
    let payload ={
    "blocks": [
        {
            "type": "section",
            "text": {
                "type": "mrkdwn",
                "text": ":bell: *Cuales Vistas estan vencidas?* :bell:"
            }
        },
        {
            "type": "section",
            "text": {
                "type": "mrkdwn",
                "text":"Estas: "
            }
        },
        { 
            "type": "section",
            "text": {
                "type": "mrkdwn",
                "text": result_string
            }
        },      
    ]
  }
      let headers = {
      'Content-type': 'application/json'
    };
    let options = {
      muteHttpExceptions: false,
      headers : headers,
      method: 'POST',
      payload: JSON.stringify(payload)
    };
  UrlFetchApp.fetch(url, options);

  };

现在,我知道它与“文本”有关:result_string,因为我试图用“text”之类的东西替换它:“测试”,它的工作原理,但通知的重点是将格式化的字符串发送到一个松弛的工作场所频道,这就是我基本上不知道为什么它会突然失败的地方。

编辑:这里发生了一些非常奇怪的事情,首先是causasCaratulas[i]。替换(///g,"'")不能解决任何问题,第二,causasCaratulas内部有两列,如果我只加载一列(不管是哪一列),脚本可以工作,我甚至尝试将数组分成两个sorta-list,在这种情况下,它仍然会抛出错误。所以错误发生在试图同时向slack api发送这两列之间的某个地方?我不知道这里发生了什么

共有1个答案

葛子昂
2023-03-14

也许您的文本数据包含

    let result_string = result
      .join('\n')
      .replace(/&/g, '&')
      .replace(/</g, '&lt;')
      .replace(/>/g, '&gt;');

请参阅Slack API参考中的转义文本。

您还应该在数据中搜索标记符号,这些符号可能会给工作带来麻烦。

 类似资料:
  • 我在这里完全不知所措。我在外置硬盘上有一个项目叫做LenseProject。在LenseProject中,我有

  • 我正在使用最新的ibm_watson_machine_learning SDK(python) 直到几天前/几周前,我的代码还可以正常工作,但现在我在运行时出现了一个错误 以下是一些示例代码:https://github.com/IBMDecisionOptimization/oplrunonwml 我在使用各种不同的模型(OPL/Cplex/Docplex)时遇到了这个错误,它们都因这个错误而失

  • 下面列出了可能导致这些错误的几个因素 我试图通过使用Intel HAXM和GenyMotion来加快模拟器的速度。我可以看到build.gradle的依赖关系发生了变化 渐变老的 是依赖项的更改导致生成错误还是其他原因。

  • 我在EclipseIDE中使用Equinox来运行一组包(其中一些是我的Eclipse工作集中的项目)。 启动Equinox后,我想运行一些服务。一种选择是使用工作正常的控制台,但是,我想在点击“运行”按钮后自动运行一些东西,而不是每次都在控制台窗口中再次写入命令。 我想运行的服务的另一个特殊之处是,它使用另一个只能在运行时解析的服务。在运行时,我的应用程序检查谁可以提供一些服务,并在服务提供者之

  • 以下是我的OS和Java版本: OS:Windows 10 openjdk版本“1.8.0_242” openjdk运行时环境(构建1.8.0_242-B08) openjdk 64位服务器VM(构建25.242-B08,混合模式)

  • 我想模拟我的 PermissionHostCompat 类的 action 我是这样做的: 它给我抛出了错误: org . mock ITO . exceptions . misusing . invaliduseofmatchersexception:< br >参数匹配器的使用无效!< br >预期有0个匹配者,记录了2个: 如果匹配器与原始值组合,则可能会出现此异常:/ /不正确: some