C#Slack Bot到Slack Channel-使用Slash命令而不是聊天

问题描述

我想向自己选择的频道发送斜杠命令。

我正在使用NuGet的Newtonsoft Json.NET序列化程序。目前,我有以下代码:

            string messageToSend = @"/Kyber test task here";
            string channelToSendTo = "#general";
            
            var urlWithAccessToken 
 = "https://hooks.slack.com/services/TOKEN/SPECIFIC/STUFF";

            var client = new SlackClient(urlWithAccessToken);

            client.PostMessage(username: "MyBot",text: messageToSend,channel: channelToSendTo);

还有SlackClient.cs

    public SlackClient(string urlWithAccessToken)
    {
        _uri = new Uri(urlWithAccessToken);
    }
  
  
  
public void PostMessage(string text,string username = null,string channel = null)
    {
        Payload payload = new Payload()
        {
            Channel = channel,Username = username,Text = text
        };
        
        PostMessage(payload);
    }
  
  
public class Payload
{
    [JsonProperty("channel")]
    public string Channel { get; set; }
    
    [JsonProperty("username")]
    public string Username { get; set; }
    
    [JsonProperty("text")]
    public string Text { get; set; }
}

它当前只说“ / kyber测试任务”,而不是调用/ kyber斜杠命令。

我已经看到了未记录的chat.command命令,但是它现在似乎不适用于Slack API。我希望有另一种方法可以不使用旧版应用程序功能,因为令我惊讶的是,我找不到比大约3-4年前还没有使用过的示例。

解决方法

我想这是答案,但是我向Slack支持。他们回答:

听起来您可能在问有关允许应用发送包含slash命令的消息以触发slash命令的问题。 如果是这样,恐怕是不可能的。相反,由于所有斜杠命令本质上都会触发特定的API端点,因此您需要与该斜杠命令的开发人员联系,以查看他们是否可以公开访问该端点,以便您可以创建自己的应用程序机制来尝试向这些端点触发命令端点。 很抱歉,我没有关于您的更好的消息。我希望这些信息可以帮助您前进。感谢您对此进行检查。

所以我认为答案是我正在使用的应用程序不支持该功能,而Slack也不支持。无论如何,谢谢您的帮助。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...