在本地测试Slack交互式消息

时间:2017-09-23 19:42:34

标签: c# slack slack-api

我目前正在使用SlackConnector Repo https://github.com/noobot/SlackConnector。我创建了一个机器人,它会向我的聊天发送交互式消息。我想为我的交互式按钮添加功能,但点击它们后我得到了这个回复。 Darn – that didn’t work. Only Slack Apps can add interactive elements to messages. Manage your apps here: https://api.slack.com/apps/所以看起来我需要一个请求网址才能让我过去目前的路障。有没有办法在本地测试交互式消息按钮?

List<SlackAttachment> attachments = new List<SlackAttachment>();
List<SlackAttachmentAction> actions = new List<SlackAttachmentAction>();
actions.Add(new SlackAttachmentAction
{
    Name  = "game",
    Text  = "chess",
    Type  = "button",
    Value = "Chess"
});
actions.Add(new SlackAttachmentAction
{
    Name  = "game",
    Text  = "Falken's Maze",
    Type  = "button",
    Value = "Maze"
});
actions.Add( new SlackAttachmentAction
{
    Name  = "game",
    Text  = "Thermonuclear War",
    Type  = "danger",
    Value = "war"
});

attachments.Add(new SlackAttachment
{
    Text       = "Choose a game to play",
    Fallback   = "You are unable to choose a game",
    CallbackId = "wopr_game",
    ColorHex   =  "#3AA3E3",
    Actions    = actions

});
connection.Say(new BotMessage
{
    ChatHub = chatHub,
    Text = "Usage: !talk <user>",
    Attachments = attachments
});

return Task.CompletedTask;

我尝试过的一件事是将请求网址设置为使用从https://webhook.site/#/生成的网址,点击

后仍然会得到相同的响应

1 个答案:

答案 0 :(得分:3)

在我看来,你有两个问题。

您没有Slack应用

交互式消息仅在您拥有已注册的Slack应用程序时才有效。这就是你收到错误信息的原因。但你可以轻松创建一个。只需转到here,然后点击&#34;创建一个新应用&#34;。您需要的一个原因是,在用户单击按钮后,您需要告诉Slack要发送请求的URL。

Slack无法访问您的本地应用

Slack的交互式消息仅适用于可从公共互联网访问的应用程序。因此,如果您想在本地开发应用程序,则需要将Web服务器打开到Internet。有很多方法可以做到这一点,一种安全的方法是使用VPN隧道服务。这种服务的一个提供者是ngrok,这也是官方Slack教程中推荐的。我自己使用它,效果很好。