【问题标题】:Why rich message created in dialogflow wouldn't appear in a bot tested on Slack?为什么在对话流中创建的丰富消息不会出现在 Slack 上测试的机器人中?
【发布时间】:2020-04-21 04:02:09
【问题描述】:

我为默认欢迎意图创建了两个答案。

一个在默认值中,另一个作为文本响应显示在 Slack 中,另一个使用 Slack 作为我的机器人的通道,单击添加响应开始使用 Dialogflows UI 为 Slack 创建响应。

第二个如下,a default template for polling from the docs

{
    "blocks": [
        {
            "type": "section",
            "text": {
                "type": "mrkdwn",
                "text": "*Where should we order lunch from?* Poll by <fakeLink.toUser.com|Mark>"
            }
        },
        {
            "type": "divider"
        },
        {
            "type": "section",
            "text": {
                "type": "mrkdwn",
                "text": ":sushi: *Ace Wasabi Rock-n-Roll Sushi Bar*\nThe best landlocked sushi restaurant."
            },
            "accessory": {
                "type": "button",
                "text": {
                    "type": "plain_text",
                    "emoji": true,
                    "text": "Vote"
                },
                "value": "click_me_123"
            }
        },
        {
            "type": "context",
            "elements": [
                {
                    "type": "image",
                    "image_url": "https://api.slack.com/img/blocks/bkb_template_images/profile_1.png",
                    "alt_text": "Michael Scott"
                },
                {
                    "type": "image",
                    "image_url": "https://api.slack.com/img/blocks/bkb_template_images/profile_2.png",
                    "alt_text": "Dwight Schrute"
                },
                {
                    "type": "image",
                    "image_url": "https://api.slack.com/img/blocks/bkb_template_images/profile_3.png",
                    "alt_text": "Pam Beasely"
                },
                {
                    "type": "plain_text",
                    "emoji": true,
                    "text": "3 votes"
                }
            ]
        },
        {
            "type": "section",
            "text": {
                "type": "mrkdwn",
                "text": ":hamburger: *Super Hungryman Hamburgers*\nOnly for the hungriest of the hungry."
            },
            "accessory": {
                "type": "button",
                "text": {
                    "type": "plain_text",
                    "emoji": true,
                    "text": "Vote"
                },
                "value": "click_me_123"
            }
        },
        {
            "type": "context",
            "elements": [
                {
                    "type": "image",
                    "image_url": "https://api.slack.com/img/blocks/bkb_template_images/profile_4.png",
                    "alt_text": "Angela"
                },
                {
                    "type": "image",
                    "image_url": "https://api.slack.com/img/blocks/bkb_template_images/profile_2.png",
                    "alt_text": "Dwight Schrute"
                },
                {
                    "type": "plain_text",
                    "emoji": true,
                    "text": "2 votes"
                }
            ]
        },
        {
            "type": "section",
            "text": {
                "type": "mrkdwn",
                "text": ":ramen: *Kagawa-Ya Udon Noodle Shop*\nDo you like to shop for noodles? We have noodles."
            },
            "accessory": {
                "type": "button",
                "text": {
                    "type": "plain_text",
                    "emoji": true,
                    "text": "Vote"
                },
                "value": "click_me_123"
            }
        },
        {
            "type": "context",
            "elements": [
                {
                    "type": "mrkdwn",
                    "text": "No votes"
                }
            ]
        },
        {
            "type": "divider"
        },
        {
            "type": "actions",
            "elements": [
                {
                    "type": "button",
                    "text": {
                        "type": "plain_text",
                        "emoji": true,
                        "text": "Add a suggestion"
                    },
                    "value": "click_me_123"
                }
            ]
        }
    ]
}

打招呼时应该会给出如下图:

但是,如果在 Integrations 中启动测试后出现第一条消息,则第二条消息永远不会出现,即使在右侧的小对话框中也是如此。

我认为问题在于我需要将机器人公开,因为似乎要使用丰富的消息,我们必须复制 Dialogflow 给出的“事件请求 URL”值并将其粘贴到“请求 URL”字段中来自我的 Slack 应用程序设置的交互式消息部分。但机器人甚至不检索默认消息。

我实施机器人的步骤

  • 在 Slack 应用中,转到“机器人用户”部分,然后单击“添加机器人用户”按钮。
  • 在 Slack 应用的“基本信息”部分,复制“客户端 ID”、“客户端密码”和“验证令牌”,并将它们的值粘贴到下面的相应字段中。
  • 启动机器人。
  • 复制下面的“OAuth URL”值并将其粘贴到 Slack 应用设置的“OAuth 和权限”部分的“重定向 URL”字段中。保存网址。
  • 从下面的字段中复制事件请求 URL,并将其粘贴到 Slack 应用程序的“事件订阅”部分中的请求 URL。
  • 在“事件订阅”部分启用事件。
  • 在“订阅机器人事件”部分选择必要的事件,例如 message.im、message.group、message.channel、im_created。这些事件将定义您的机器人将响应的消息类型(直接、通道内等)。保存更改。我选择了 message.im、message.groups、message.channels、im_created
  • 在 Slack 应用程序设置中,转到“管理分发”并使用“添加到 Slack”按钮将机器人添加到您的 Slack 团队(那里出现错误)

【问题讨论】:

    标签: json dialogflow-es chatbot slack slack-api


    【解决方案1】:

    为了能够使用自定义负载发送所需的响应,您应该首先添加 Dialogflow 向 slack 发送请求所需的格式。

    {
      "slack": {
        "text": "Testing custom payloads",
        "attachments": []
      }
    }
    

    在附件中,添加块格式,然后它应该将消息发送到您的机器人。

    最终消息如下所示:

    {
      "slack": {
        "text": "",
        "attachments": [{
        "blocks": [
            {
                "type": "section",
                "text": {
                    "type": "mrkdwn",
                    "text": "*Where should we order lunch from?* Poll by <fakeLink.toUser.com|Mark>"
                }
            },
            {
                "type": "divider"
            },
            {
                "type": "section",
                "text": {
                    "type": "mrkdwn",
                    "text": ":sushi: *Ace Wasabi Rock-n-Roll Sushi Bar*\nThe best landlocked sushi restaurant."
                },
                "accessory": {
                    "type": "button",
                    "text": {
                        "type": "plain_text",
                        "emoji": true,
                        "text": "Vote"
                    },
                    "value": "click_me_123"
                }
            },
            {
                "type": "context",
                "elements": [
                    {
                        "type": "image",
                        "image_url": "https://api.slack.com/img/blocks/bkb_template_images/profile_1.png",
                        "alt_text": "Michael Scott"
                    },
                    {
                        "type": "image",
                        "image_url": "https://api.slack.com/img/blocks/bkb_template_images/profile_2.png",
                        "alt_text": "Dwight Schrute"
                    },
                    {
                        "type": "image",
                        "image_url": "https://api.slack.com/img/blocks/bkb_template_images/profile_3.png",
                        "alt_text": "Pam Beasely"
                    },
                    {
                        "type": "plain_text",
                        "emoji": true,
                        "text": "3 votes"
                    }
                ]
            },
            {
                "type": "section",
                "text": {
                    "type": "mrkdwn",
                    "text": ":hamburger: *Super Hungryman Hamburgers*\nOnly for the hungriest of the hungry."
                },
                "accessory": {
                    "type": "button",
                    "text": {
                        "type": "plain_text",
                        "emoji": true,
                        "text": "Vote"
                    },
                    "value": "click_me_123"
                }
            },
            {
                "type": "context",
                "elements": [
                    {
                        "type": "image",
                        "image_url": "https://api.slack.com/img/blocks/bkb_template_images/profile_4.png",
                        "alt_text": "Angela"
                    },
                    {
                        "type": "image",
                        "image_url": "https://api.slack.com/img/blocks/bkb_template_images/profile_2.png",
                        "alt_text": "Dwight Schrute"
                    },
                    {
                        "type": "plain_text",
                        "emoji": true,
                        "text": "2 votes"
                    }
                ]
            },
            {
                "type": "section",
                "text": {
                    "type": "mrkdwn",
                    "text": ":ramen: *Kagawa-Ya Udon Noodle Shop*\nDo you like to shop for noodles? We have noodles."
                },
                "accessory": {
                    "type": "button",
                    "text": {
                        "type": "plain_text",
                        "emoji": true,
                        "text": "Vote"
                    },
                    "value": "click_me_123"
                }
            },
            {
                "type": "context",
                "elements": [
                    {
                        "type": "mrkdwn",
                        "text": "No votes"
                    }
                ]
            },
            {
                "type": "divider"
            },
            {
                "type": "actions",
                "elements": [
                    {
                        "type": "button",
                        "text": {
                            "type": "plain_text",
                            "emoji": true,
                            "text": "Add a suggestion"
                        },
                        "value": "click_me_123"
                    }
                ]
            }
        ]
    }]
      }
    }
    
    

    【讨论】:

    • 太好了,谢谢。我将悬赏留到星期三,然后如果你仍然是最佳答案,它将全部属于你。顺便问一下,你会如何处理选择的值?
    猜你喜欢
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-08
    • 2019-09-28
    • 1970-01-01
    相关资源
    最近更新 更多