Laravel Discord Slack兼容webhook

Laravel Discord Slack兼容webhook,laravel,discord,slack,Laravel,Discord,Slack,正如您可以使用Slack的webhook格式一样 在Laravel应用程序中,我目前拥有: $blocks=[ [ '类型'=>'节', “文本”=>[ '类型'=>'纯文本', “文本”=>“测试”, ] ] ]; $response=Http::post('https://discordapp.com/api/webhooks/.../.../slack', [ “文本”=>“标题”, “块”=>json_编码($blocks), ]); 但是只有'Title'在消息中结束,而不是$blo

正如您可以使用Slack的webhook格式一样

在Laravel应用程序中,我目前拥有:

$blocks=[
[
'类型'=>'节',
“文本”=>[
'类型'=>'纯文本',
“文本”=>“测试”,
]
]
];
$response=Http::post('https://discordapp.com/api/webhooks/.../.../slack', [
“文本”=>“标题”,
“块”=>json_编码($blocks),
]);

但是只有
'Title'
在消息中结束,而不是
$blocks
内容。Discord文档没有说明这不受支持,它们指的是明确说明如何使用块构建消息的地方。我缺少什么?

Http
将自动将对象/数组转换为有效的
JSON
。因此,删除
json\u encode()
应该有助于解决您的问题

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

同样的结果,消息中只包含
文本
值。为了让Slack webhook正常工作,我实际上必须在
$blocks
上使用
json\u encode
,这就是我在那里使用它的原因。不知道为什么这些数据块没有被发送。但这与文档中的内容无关,在文档中,您显然不需要对其进行编码,您的解决方案将对其进行双重编码。是的,我不太记得为什么。但是如果没有它,就像你建议的那样,块不会被发送,所以肯定是其他地方出了问题。