我已经通过斜杠命令创建了一条消息
Map<String, Object> data = new HashMap<>();
data.put("channel", command.getChannelId());
data.put("blocks", blocks);
仅是几行文字,每行都有一个订阅按钮。
现在,用户已经可以单击按钮,并且订阅存储在我的后端,但是我不知道如何响应该点击。
我要做的是将按钮的文本从“订阅”更改为“取消订阅”(反之亦然)。
由于很难获取文档,因此找不到包含有关如何执行此操作的示例的页面(the docs)。
我的猜测是只是再次发送相同的消息,但是这次我正在寻求修改:
// ..
String text;
if (isSubscribed) {
text = "Unsubscribe";
} else {
text = "Subscribe";
}
PlainTextObject plainTextObject = buttonElement.getText();
plainTextObject.setText(text);
buttonElement.setText(plainTextObject);
// ..
List<LayoutBlock> blocks = message.getBlocks();
Map<String, Object> data = new HashMap<>();
data.put("channel", channel.getId());
data.put("blocks", blocks);
但是为此,我只获得了HTTP 500。那么..这样做的正确方法是什么?
这是我作为响应发送的JSON(原始消息的副本):
{
"blocks": [
{
"type": "section",
"text": {
"type": "plain_text",
"text": "Gasthof",
"emoji": true
},
"blockId": "Ohsb8",
"accessory": {
"type": "button",
"text": {
"type": "plain_text",
"text": "Subscribe",
"emoji": true
},
"actionId": "LV\u003dBj",
"value": "1"
}
}
],
"channel": "CLD12342",
"replace_original": "true"
}
我得到的是
找不到HTTP 404
但是我一定在使用提供的responseUrl
?!
仅供参考,我正在使用Java库jslack(https://github.com/seratch/jslack)。