【问题标题】:Discord Slack compatible webhookDiscord Slack 兼容的 webhook
【发布时间】:2021-02-06 12:23:58
【问题描述】:

作为per Discord's documentation,您可以使用 Slack 的 webhook 格式。

在我目前拥有的 Laravel 应用中:

$blocks = [
  [
    'type' => 'section',
    'text' => [
      'type' => 'plain_text',
      'text' => 'test',
    ]
  ]
];

$response = Http::post('https://discordapp.com/api/webhooks/.../.../slack', [
  'text' => 'Title',
  'blocks' => json_encode($blocks),
]);

但只有'Title' 出现在消息中,而不是$blocks 内容。 Discord 文档并未声明不支持此功能,它们引用了the Slack webhook docs,其中明确说明了如何使用块构建消息。我错过了什么?

【问题讨论】:

    标签: laravel discord slack


    【解决方案1】:

    Http 将自动将对象/数组转换为有效的JSON。所以删除json_encode() 应该可以解决您的问题。

    $response = Http::post('https://discordapp.com/api/webhooks/.../.../slack', [
      'text' => 'Title',
      'blocks' => $blocks,
    ]);
    

    【讨论】:

    • 同样的结果,只有text 值包含在消息中。为了让 Slack webhook 工作,我实际上必须在 $blocks 上使用 json_encode,这就是我在那里使用它的原因。不知道为什么没有发送这些块。
    • 但这与文档中您显然不必对其进行编码的内容无关,您的解决方案将对其进行双重编码
    • 是的,我不太记得为什么。但是没有它,正如你所建议的,没有发送块是好的,所以其他东西一定是错的。
    猜你喜欢
    • 2017-05-22
    • 2016-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-24
    • 2020-08-17
    • 2019-09-17
    • 2021-11-25
    相关资源
    最近更新 更多