响应用户交互-如何更新消息?

时间:2019-07-15 05:41:36

标签: slack slack-api

我已经通过斜杠命令创建了一条消息

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)。

0 个答案:

没有答案