【问题标题】:Testing Slack Interactive Messages Locally在本地测试 Slack 交互式消息
【发布时间】:2017-09-23 19:42:34
【问题描述】:

我目前正在使用 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/ 所以看起来我需要一个请求 URL 来克服我当前的障碍。有没有办法在本地测试交互式消息按钮?

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;

我尝试过的一件事是我将请求 URL 设置为使用从 https://webhook.site/#/ 生成的 url,点击后我仍然得到相同的响应

【问题讨论】:

标签: c# slack slack-api


【解决方案1】:

在我看来你有两个问题。

您没有 Slack 应用

只有在您拥有已注册的 Slack 应用程序时,交互式消息才有效。这就是您收到该错误消息的原因。但是您可以轻松地创建一个。只需转到here 并单击“创建新应用程序”。您需要一个原因是您需要在用户单击按钮后告诉 Slack 将请求发送到哪个 URL。

Slack 无法访问您的本地应用

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

【讨论】:

  • 也许您可以将此答案与原始问题联系起来?就目前而言,很难看出这会如何或为什么会解决他的问题。
  • 当然我会扩展我的答案
  • 嗨@ErikKalkoken 感谢您的出色回答。我现在正在尝试使用 ngrok,但我觉得我设置错了。我与 ngrok 在线,我将转发地址设置为交互式消息的请求 url。所以它看起来像1e9ede37.ngrok.io,当我单击一个按钮时,我得到了相同的响应,而 ngrok 也没有收到请求。有什么想法吗?
  • 我实际上没有得到相同的响应。我收到了Darn – that didn’t work. Only Slack Apps can add interactive elements to messages. Manage your apps here
  • 您是否安装了 Slack 应用并获得了新的访问令牌?您需要使用新的访问令牌来发送包含按钮的消息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多