【问题标题】:C# Slack Bot to Slack Channel - using Slash command and not chatC# Slack Bot 到 Slack Channel - 使用 Slash 命令而不是聊天
【发布时间】:2020-08-10 21:19:57
【问题描述】:

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

我正在使用来自 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 test task here”,而不是调用 /kyber 斜杠命令。

我看到了未记录的 chat.command 命令,但它现在似乎不适用于 Slack API。我希望有另一种方法可以在不使用 Legacy App 功能的情况下做到这一点,因为令我惊讶的是,我找不到比大约 3-4 年前更新但没有使用它的示例。

【问题讨论】:

  • 只是为了排除问题,您可以尝试执行/who(显示在文档中)以查看它是否实际运行命令或只需键入/who?可能是您使用的库不支持 /kyber 命令。
  • 当我尝试这样做时,它只是在聊天中说 /who 并且不执行命令(来自我的 C# 项目)。我可以在 slack 频道中手动执行 /who,它会按预期显示用户列表。
  • 如果没有其他人在这里回复答案。我建议通过 github 问题咨询图书馆作者。也许你需要运行不同的命令或其他东西。

标签: c# json.net slack slack-api


【解决方案1】:

我想这就是答案,但我询问了 Slack 支持。他们回答:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多