我目前正在爲我的軟件團隊創建一些非常定製的功能,並且想到使用鬆散事件訂閱的一個很好的解決方案。問題是,我在獲取事件信息後遇到了問題......到目前爲止,我已經成功配置了slack來調用我的WCF服務,但是,包含我之後的信息的'event'參數始終空值。Slack Event訂閱
這是我到目前爲止有:
[ServiceContract]
public interface ISlackTrelloService
{
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "SlackPost", RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json)]
string SlackPost(string type, string token, string challenge, string team_id, SlackEvent slackEvent);
}
具體實現:
public class SlackTrelloService : ISlackTrelloService
{
public string SlackPost(string type, string token, string challenge, string team_id, SlackEvent slackEvent)
{
return challenge;
}
}
的SlackEvent類:
[JsonObject(Id = "event", Description = "event", Title = "event")]
public class SlackEvent
{
[JsonProperty(PropertyName = "type")]
public string Type { get; set; }
[JsonProperty(PropertyName = "event_ts")]
public string EventTimestamp { get; set; }
[JsonProperty(PropertyName = "user")]
public string User { get; set; }
[JsonProperty(PropertyName = "ts")]
public string Timestamp { get; set; }
[JsonProperty(PropertyName = "item")]
public string Item { get; set; }
}
現在,SlackEvent對象是有問題的位的代碼,因爲我希望它包含由Slack根據發送的信息文檔。其他參數都正確填充,只是不是slackEvent對象:(
起初我以爲這是因爲參數名稱不完全匹配,但即使使用@event(因爲事件是C#中的關鍵字)didn 「T似乎工作我不知道如果我使用Newtonsoft JSON庫不正確,或者如果有別的東西,我很想念
編輯:。 新方法來捕獲的數據格式正確
string SlackPost(string token, string team_id, string api_app_id, SlackEvent slackEvent, string type, string[] authed_users, string event_id, string event_time);
SlackEvent結構:
[JsonObject("event")]
public class Event
{
[JsonProperty(PropertyName = "type")]
public string Type { get; set; }
[JsonProperty(PropertyName = "channel")]
public string Channel { get; set; }
[JsonProperty(PropertyName = "user")]
public string User { get; set; }
[JsonProperty(PropertyName = "text")]
public string Text { get; set; }
[JsonProperty(PropertyName = "ts")]
public string TimeStamp { get; set; }
}
我的類是非常不完整,我想正是(我需要另一種方法來接受方法的信息)......然而,我找不到任何有關如何實際觸發事件請求的信息,即如何告訴Slack調用單獨的方法? 現在正在調用的方法正在工作,因爲在Slack中有一個配置選項,允許我指定特定的URL進行驗證。 – spuriousGeek
好的,很酷。我認爲我們正走在正確的軌道上。 Slack會將兩種請求類型發送到相同的url,這是您在配置窗口中指定的那個。驗證握手完成後(您將在配置窗口中看到)以及您訂閱的事件已發生,您將收到事件請求。我建議訂閱[消息](https://api.slack.com/events/message),然後在某個頻道中引起某種觸發。 –
我編輯了原始帖子,以反映我捕獲正在被解僱的事件數據所做的更改。我現在正確地接收了所有的數據,除了事件信息(我實際上是在!之後!)。我正在使用Newtonsoft JSON庫嘗試捕獲事件對象,但也許我誤解了某些內容,因爲slackEvent始終爲空。這可能是我必須映射到確切的「事件」,但由於它是一個關鍵字,我嘗試設置我創建的數據結構的id,即[JsonObject(「event」)] – spuriousGeek