【问题标题】:Slash command response not parse correctly斜杠命令响应无法正确解析
【发布时间】:2016-05-08 15:42:34
【问题描述】:

我的问题与 Slack 的 Slash 命令有关。

我正在尝试将响应回显到调用通道。

例如,我已经整合了一个测试命令,例如

/test hello

我希望回复如下:

Hello
Wold

但我目前得到它(在我的松弛频道中):

{"text":"hello\nworld"}

这是我的 PHP 代码:

$payload = '{"text":"hello\nworld"}';
echo $payload;

注意我不想这样回应:

echo "hello\nworld";

提前致谢:)

也许对给出答案有用:-

实际错误响应示例:

Slack 斜杠命令 API 网址: https://api.slack.com/slash-commands

【问题讨论】:

  • 因此,如果您的有效负载是 json,并且您在 slack 频道中获得了与您打印的相同 json 的内容,那么也许您只需要回显您想在频道中显示的内容?我的意思是,没有人有特别的味道。
  • 是的,这是可能的,但实际上我还需要打印 api 允许的其他内容,但我无法打印带有文本的表情符号图标,那么它只会显示文本表情符号,但实际上不会显示一个表情符号。
  • 你需要改行:$payload = '{"text":"hello\nworld"}';是:$payload = 'payload={"text":"hello\nworld"}';

标签: php api command slash slack


【解决方案1】:

如果您仔细阅读文档(您链接的),您会注意到它说:

注意:如果您使用 JSON 而不是纯文本进行响应,则响应的内容类型标头必须与您的内容的处置 application/json 匹配。

看起来您只是在输出 JSON 而没有发送正确的 Content-Type 标头,因此 Slack 认为它是纯文本并将您的 JSON 显示为纯文本。

另外,请考虑使用 json_encode 而不是手动编写 JSON。

【讨论】:

    猜你喜欢
    • 2021-07-17
    • 2022-11-10
    • 1970-01-01
    • 2021-09-24
    • 2021-10-10
    • 2011-11-05
    • 1970-01-01
    • 2019-08-26
    • 1970-01-01
    相关资源
    最近更新 更多