我已经让这个脚本运行了3个多月,没有任何问题,然而,上周它开始抛出以下内容:
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);
};
现在,我知道它与"text": result_string
相关,因为我尝试用类似于"text":"test“之类的东西来代替它,但是通知的全部目的是将格式化的字符串发送到一个松弛的workplace通道,在那里,我基本上不知道为什么会突然出现这样的失败。
编辑:这里发生了一些非常奇怪的事情,首先,causasCaratulasi.replace(/"/g,‘’“)没有修复任何问题,其次,causasCaratulas内部有两个列,如果我只加载一个列(不管脚本是哪一列),我甚至尝试将数组拆分成两个排序列表,在这种情况下,它仍然抛出的错误。因此,这个错误发生在试图同时将这两列发送到松弛api之间?
编辑2:数据的结构如下所示。问题似乎是,每当我试图同时发送大小写号和大小写名时,我会发现一个错误,然而,这似乎取决于某种神秘的符号,如果它甚至是一个符号,它会如何识别。
发布于 2022-06-21 13:18:59
也许您的文本数据包含&<>
?试试这个:
let result_string = result
.join('\n')
.replace(/&/g, '&')
.replace(/</g, '<')
.replace(/>/g, '>');
参见Slack参考中的转义文本。
你也应该搜索你的数据,寻找可能在工作中抛出扳手的标记符号。
https://stackoverflow.com/questions/72701031
复制相似问题