【发布时间】: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