Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 本地测试交互消息_C#_Slack_Slack Api - Fatal编程技术网

C# 本地测试交互消息

C# 本地测试交互消息,c#,slack,slack-api,C#,Slack,Slack Api,我目前正在使用SlackConnector Repo。我已经创建了一个机器人,它向我的聊天室发送交互式消息。我想为我的交互按钮添加功能,但单击它们后,我得到了此响应该死的-那没用。只有Slack应用程序才能向消息中添加交互元素。在此处管理您的应用程序:https://api.slack.com/apps/所以看起来我需要一个请求URL来克服当前的障碍。是否有办法在本地测试交互式消息按钮 List<SlackAttachment> attachments = new List<S

我目前正在使用SlackConnector Repo。我已经创建了一个机器人,它向我的聊天室发送交互式消息。我想为我的交互按钮添加功能,但单击它们后,我得到了此响应<代码>该死的-那没用。只有Slack应用程序才能向消息中添加交互元素。在此处管理您的应用程序: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;
列表附件=新列表();
列表操作=新建列表();
操作。添加(新SlackAttachmentAction
{
Name=“游戏”,
Text=“chess”,
Type=“button”,
Value=“国际象棋”
});
操作。添加(新SlackAttachmentAction
{
Name=“游戏”,
Text=“法尔肯迷宫”,
Type=“button”,
Value=“迷宫”
});
操作。添加(新SlackAttachmentAction
{
Name=“游戏”,
Text=“热核战争”,
Type=“危险”,
Value=“战争”
});
附件。添加(新的松弛附件
{
Text=“选择要玩的游戏”,
Fallback=“您无法选择游戏”,
CallbackId=“wopr\u游戏”,
ColorHex=“#3AA3E3”,
动作=动作
});
连接。说(新消息)
{
ChatHub=ChatHub,
Text=“用法:!说话”,
附件=附件
});
返回Task.CompletedTask;

我尝试过的一件事是,我将请求URL设置为使用从生成的URL,但在单击时仍然得到相同的响应。在我看来,您有两个问题

你没有松弛的应用程序

只有当你有一个注册的Slack应用程序时,交互式消息才有效。这就是你收到错误信息的原因。但是你可以很容易地创建一个。只需点击“创建新应用”。您需要它的一个原因是,在用户单击按钮后,您需要告诉Slack将请求发送到哪个URL

Slack无法访问您的本地应用程序


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

也许你可以把这个答案和原来的问题联系起来?就目前情况而言,很难看出这将如何或为什么解决他的问题。当然,我会扩展我的回答hi@ErikKalkoken谢谢你的回答。目前我正在尝试使用ngrok,但我觉得我的设置是错误的。我和ngrok在线,我把Forwaring地址作为交互式消息的请求url。所以,当我点击一个按钮时,我得到了相同的响应,而ngrok也没有收到请求。有什么想法吗?我实际上没有得到同样的回答。我收到了
Darn–这不起作用。只有Slack应用程序才能向消息中添加交互元素。在此处管理您的应用程序
您是否安装了Slack应用程序并获得了新的访问令牌?您需要使用新的访问令牌来发送包含按钮的消息。请参阅本地开发文档: