我正试图发布到Slack频道,但它没有按预期工作。我在Slack中得到的唯一消息是Array,因为text的值是一个Array。当我理解他们的文档时,它不应该这样做。如果我将文本移动到数组的第一级,则显示实际文本,因此我猜测我的请求工作正常。我错过了什么?这是使用GuzzleHttpClient在PHP中完成的。
我的留言:
[
'type' => 'section',
'text' => [
'type' => 'mrkdwn',
'text' => 'This is supposed to be my text'
]
];
我对API的要求:
$request = $client->post($url, [
RequestOptions::JSON => $messages
]);
它似乎不那么明显,但你不能使用他们的API chat.postMessage
用于传入webhooks的消息格式。两者都有不同的格式。
随着说,follow this documentation for webhook messages和它的格式here。
你想要做的是使用所谓的“块”,这似乎是专门用于他们的API messaging。
如果你在这个message builder(用于webhooks)上尝试你的消息,它将失败。但它将适用于this message builder。
如果您希望消息显示在多行上,也许您可以使用新行。见here。
正如@ncla所提到的,如果您使用“阻止UI”元素,使用传入的webhook API,则无法像使用chat.postMessage
一样发送块。
它在Blocks文档中并不明显,但在Messages payload page中它指定您可以发送blocks
属性。这将允许您使用Blocks结构。
您的结构不正确,请参阅文档:https://api.slack.com/messaging/composing/layouts#stack-of-blocks
它应该是消息块的数组,您需要进一步嵌套它。
[
[
'type' => 'section',
'text' => [
'type' => 'mrkdwn',
'text' => 'This is supposed to be my text'
]
]
];