Php 使用块布局时的消息格式设置

Php 使用块布局时的消息格式设置,php,json,slack-api,Php,Json,Slack Api,我想使用blocks布局格式向我的slack应用程序发送消息。我在PHP中创建了一个关联数组,然后使用json_encode将其转换为json。问题是它没有转换成slack期望的JSON格式,我得到一个错误“无效块格式”。这是我的代码、输出和slack期望的输出 $data = array( 'blocks' => array( 'type' => 'mrkdwn', 'text' => 'Danny Torrence left the

我想使用blocks布局格式向我的slack应用程序发送消息。我在PHP中创建了一个关联数组,然后使用json_encode将其转换为json。问题是它没有转换成slack期望的JSON格式,我得到一个错误“无效块格式”。这是我的代码、输出和slack期望的输出

$data = array(
    'blocks' => array(
        'type' => 'mrkdwn',
        'text' => 'Danny Torrence left the following review for your property'
    ),
);
$data = json_encode($data);
我得到以下输出:

{"blocks":{"type":"mrkdwn","text":"Danny Torrence left the following review for your property"}}
但是,Slack希望JSON采用以下格式:

{"blocks":["type":"mrkdwn","text":"Danny Torrence left the following review for your property"]}
最后,我只需要将一个“{”转换为“[”,将一个“}”转换为“]”。我将感谢任何帮助


谢谢

我没有足够的声誉,但我相信这是一个复制品:

此外,这不是有效的json,您可以检查

总结这篇文章,您真正需要做的就是用另一个数组包装您的内部数组

$data = array(
    'blocks' => array(array(
        'type' => 'mrkdwn',
        'text' => 'Danny Torrence left the following review for your property'
    )),
);
这将返回:

{"blocks":[{"type":"mrkdwn","text":"Danny Torrence left the following review for your property"}]}

我没有足够的声誉,但我相信这是一个复制品:

此外,这不是有效的json,您可以检查

总结这篇文章,您真正需要做的就是用另一个数组包装您的内部数组

$data = array(
    'blocks' => array(array(
        'type' => 'mrkdwn',
        'text' => 'Danny Torrence left the following review for your property'
    )),
);
这将返回:

{"blocks":[{"type":"mrkdwn","text":"Danny Torrence left the following review for your property"}]}

的确API想要一个布局块数组的原因是,因为您的消息中可以有多个块。API需要布局块数组的原因是,因为消息中可以有多个块