我创建了一个 Slack 机器人,它发送一条 Slack 消息,然后按下该按钮下方的按钮,该按钮会变成红色,仅此而已。当按下时,我不断收到“此应用程序响应了 400 代码”。
当我按下按钮时,一切都很好接受。
任何帮助将不胜感激!
function sendSlackMessage(message, row) {
var slackUrl = 'https://hooks.slack.com/services/XXXXX';
var payload = {
'text': '',
'blocks': [
{
'type': 'section',
'text': {
'type': 'mrkdwn',
'text': message
}
},
{
'type': 'actions',
'elements': [
{
'type': 'button',
'text': {
'type': 'plain_text',
'emoji': true,
'text': 'Sent To Client'
},
'style': 'primary',
'value': row.toString(),
'action_id': 'approve_button'
},
]
}
]
};
var options = {
'method': 'post',
'contentType': 'application/json',
'payload': JSON.stringify(payload)
};
var response = UrlFetchApp.fetch(slackUrl, options);
Logger.log('Response from Slack: ' + response.getContentText());
// Check if the button was clicked
var data;
try {
data = JSON.parse(response.getContentText());
} catch (e) {
Logger.log('Error parsing response from Slack: ' + response.getContentText());
return;
}
if (data.actions && data.actions.length > 0 && data.actions[0].action_id === 'approve_button') {
// Update the button to show a checkmark and change the color to red
payload.blocks[1].elements[0].text = {
'type': 'plain_text',
'emoji': true,
'text': 'Sent To Client :heavy_check_mark:'
};
payload.blocks[1].elements[0].style = 'danger';
payload.blocks[1].elements[0].disabled = true;
options.payload = JSON.stringify(payload);
UrlFetchApp.fetch(data.response_url, options);
Logger.log('Response from Slack: ' + response.getContentText());
}
}
这与我现在使用 Bolt javascript 应用程序遇到的问题相同。对于某些用户来说,它会起作用,但对其他人来说则不会。