【问题标题】:Message formatting in Slack in using blocks layout [duplicate]使用块布局在 Slack 中格式化消息[重复]
【发布时间】:2019-04-02 18:25:01
【问题描述】:

我想使用块布局格式向我的 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"]}

最后我只需要将一个'{' 转换为'[' 和一个'}' 转换为']'。我将不胜感激。

谢谢

【问题讨论】:

    标签: php json slack-api


    【解决方案1】:

    我没有足够的声誉,但我相信这是重复的:no square bracket json array

    另外,这不是有效的 json,您可以查看https://jsonlint.com/?code=

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

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

    $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 需要一组布局块的原因是,您的消息中可以有多个块
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-12
    • 1970-01-01
    • 1970-01-01
    • 2018-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多