Я настроил то, что, по моему мнению, должно быть работающим выводом JSON для отправки сообщения в slack, но Slack продолжает отклонять его.
Я пробовал несколько разных форматов компоновки сообщений, используя руководства на сайте api slack,но пока единственный метод, который успешно отправил это полностью плоский JSON без форматирования блока.
function submitValuesToSlack(e) {
var name = e.values[1];
var caseNumber = e.values[2];
var problemDescription = e.values[3];
var question = e.values[4];
var completedChecklist = e.values[5];
var payload = [{
"channel": postChannel,
"username": postUser,
"icon_emoji": postIcon,
"link_names": 1,
"blocks": [
{
"type": "section",
"fields": [
{
"type": "mrkdwn",
"text": "*Name:*\n " + name
}
]
}]
}];
console.log(JSON.stringify(payload, null, "\t"));
var options = {
'method': 'post',
'payload': JSON.stringify(payload)
};
console.log(options)
var response = UrlFetchApp.fetch(slackIncomingWebhookUrl, options);
}
Когда я запускаю это, я получаю следующий вывод:
[
{
"channel":"#tech-support",
"username":"Form Response",
"icon_emoji":":mailbox_with_mail:",
"link_names":1,
"blocks":[
{
"type":"section",
"fields":[
{
"type":"mrkdwn",
"text":"*Name:*\n test"
}
]
}
]
}
]
, которыйЯ считаю, что это правильно, однако слабый API просто отклоняет его с ошибкой HTTP 400 "нет текста"
Не понимаю ли я что-то о блочном форматировании?
РЕДАКТИРОВАТЬ:
Уточнитьформатирование работает, если я использую это для моего JSON вместо более сложного формата:
{
"channel":"#tech-support",
"username":"Form Response",
"icon_emoji":":mailbox_with_mail:",
"link_names":1,
"text":"*Name:*\n test"
}