public void SendUserMessage() { // initialize client with app token var client = new SlackWebApiClient("## api-token ##"); // get users list var user = client.Users.List() .FirstOrDefault(u => u.Name == "user.name"); // find communication channel var channel = client.DirectMessages.Channels() .FirstOrDefault(c => c.UserId == user.Id); // open channel if it's not created yet if (channel == null) { channel = client.DirectMessages.OpenChannel(user); } // post message client.Chat.PostMessage(channel, new MessageParameters { Message = "this is the message", AsUser = false, IconEmoji = ":chart_with_upwards_trend:", IconUrl = "http://lorempixel.com/48/4", LinkNames = false, Parse = ParseMessage.Full, ReplyBroadcast = false, UnfurlLinks = false, UnfurlMedia = true, UserName = "******" }); }
public void ClientSetup() { var client = new SlackWebApiClient("token"); Assert.Equal("https://slack.com/api/", client.Client.BaseAddress.ToString()); Assert.Equal("token", client.Client.DefaultRequestHeaders.Authorization.Parameter); Assert.Equal("Bearer", client.Client.DefaultRequestHeaders.Authorization.Scheme); }
public void GetUserList() { // initialize client with app token var client = new SlackWebApiClient("## api-token ##"); // get users list var users = client.Users.List(); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { var token = Environment.GetEnvironmentVariable("oauth_token"); var api = new SlackWebApiClient(token); services.AddSingleton <ISlackApiClient>(api); services.AddControllers().AddNewtonsoftJson(); }
public void GetGroupHistory() { var client = new SlackWebApiClient("## api-token ##"); var groups = client.Groups.List(); var myGroup = groups.Single(g => g.Name == "my-group"); // get history var history = client.Groups.History(myGroup); }
private async Task <ActionResult> SendApprovalMessage(SlashCommand slashCommand) { var token = Environment.GetEnvironmentVariable("oauth_token"); var api = new SlackWebApiClient(token); var request = new PostMessageRequest { Channel = "C01C9M0DAMB", Text = $"<@{slashCommand.UserId}> has requested approval for {slashCommand.Text}" }; await api.Chat.Post(request); return(new OkObjectResult($"Your approval request for {slashCommand.Text} has been sent")); }
public void PostMessageOnGroup() { // initialize client with app token var client = new SlackWebApiClient("## api-token ##"); // get group list var groups = client.Groups.List(); // find specific group var myGroup = groups.Single(g => g.Name == "my-group"); // post a message client.Chat.PostMessage(myGroup, "This is the message from bot."); }
public static Task <TResponse> CheckApi <TResponse>( Func <SlackWebApiClient, Task <TResponse> > requestCall, string url, Action <NameValueCollection> requestCheck, TResponse responseToSend) { var http = new HttpClient(new ActionHandler(async req => { Assert.Equal("https://slack.com/api/" + url, req.RequestUri.ToString()); Assert.Equal("application/x-www-form-urlencoded", req.Content.Headers.ContentType.MediaType); var dict = HttpUtility.ParseQueryString(await req.Content.ReadAsStringAsync()); requestCheck(dict); }, responseToSend)); var client = new SlackWebApiClient(http); return(requestCall(client)); }
public static Task <TResponse> CheckApi <TResponse>( Func <SlackWebApiClient, Task <TResponse> > requestCall, string url, Action <JObject> requestCheck, TResponse responseToSend) { var http = new HttpClient(new ActionHandler(async req => { Assert.Equal("https://slack.com/api/" + url, req.RequestUri.ToString()); Assert.Equal("application/json", req.Content.Headers.ContentType.MediaType); var jobject = JObject.Parse(await req.Content.ReadAsStringAsync()); requestCheck(jobject); }, responseToSend)); var client = new SlackWebApiClient(http); return(requestCall(client)); }
public void PostMessageOnGroupWithParameters() { var client = new SlackWebApiClient("## api-token ##"); var groups = client.Groups.List(); var myGroup = groups.Single(g => g.Name == "my-group"); // post a message with various parameters client.Chat.PostMessage(myGroup, new MessageParameters { Message = "this is the message", AsUser = false, IconEmoji = ":chart_with_upwards_trend:", IconUrl = "http://lorempixel.com/48/4", LinkNames = false, Parse = ParseMessage.Full, ReplyBroadcast = false, ThreadTs = "1234", UnfurlLinks = false, UnfurlMedia = true, UserName = "******" }); }
public void PostMessageOnGroupWithAttachment() { var client = new SlackWebApiClient("## api-token ##"); var groups = client.Groups.List(); var myGroup = groups.Single(g => g.Name == "my-group"); // post a message with attachment client.Chat.PostMessage(myGroup, new MessageParameters { Message = "this is the message", AsUser = false, Attachments = new List <AttachmentRequest> { new AttachmentRequest { Fallback = "Fallback message", Color = Colour.Danger, Pretext = "Pretext", AuthorName = "Bobby Tables", AuthorLink = "http://flickr.com/bobby/", AuthorIcon = "http://flickr.com/icons/bobby.jpg", Title = "Slack API Documentation", TitleLink = "https://api.slack.com/", Text = "Optional text that appears within the attachment", Fields = new List <AttachmentFieldRequest> { new AttachmentFieldRequest("First field", "First field value"), new AttachmentFieldRequest("Second field", "Second field value", true), new AttachmentFieldRequest("Third field", "Third field value", true) }, ImageUrl = "http://my-website.com/path/to/image.jpg", ThumbUrl = "http://example.com/path/to/thumb.png", Footer = "Slack API", FooterIcon = "https://platform.slack-edge.com/img/default_application_icon.png", TimeStamp = new DateTime(2000, 01, 01) } } }); }
protected void CreateMockClient(Func <string> closure) { Connector = new MockSlackConnector(closure); WebApiClient = new SlackWebApiClient("##token##", Connector); }