Esempio n. 1
0
        public async Task <Message> PostMessageAsync(string workspaceName, string channelId, string text)
        {
            HttpClient client   = CreateClient(workspaceName);
            var        request  = new ChatPostMessageRequest(channelId, text);
            var        response = await request.SendAsync(client);

            return(response.Msg);
        }
Esempio n. 2
0
        public async Task <ChatPostMessageResponse> PostMessageQuestionAsync(Question question)
        {
            var chatPost = new ChatPostMessageRequest
            {
                Channel = question.Recipient,
                Text    = string.Empty,
                as_user = "******",
                Blocks  = ToBlocks(question).ToArray()
            };

            return(await _slackClient.ChatPostMessage(chatPost));
        }
Esempio n. 3
0
 public async Task PublishToWorkspace(string teamId, string channel, params string[] messages)
 {
     foreach (var msg in messages)
     {
         var req = new ChatPostMessageRequest
         {
             Channel      = channel,
             Text         = msg,
             unfurl_links = "false"
         };
         await PublishToWorkspace(teamId, req);
     }
 }
Esempio n. 4
0
 /// <inheritdoc/>
 public async Task <ChatPostMessageResponse> ChatPostMessage(ChatPostMessageRequest postMessage)
 {
     return(await _client.PostJson <ChatPostMessageResponse>(postMessage, "chat.postMessage", s => _logger.LogTrace(s)));
 }
Esempio n. 5
0
        private bool PostMessage(string channelId, MessageParameters messageParameters)
        {
            if (messageParameters.Message == null)
            {
                throw new ArgumentNullException("Message is required");
            }

            var request = new ChatPostMessageRequest
            {
                Channel        = channelId,
                Text           = messageParameters.Message,
                AsUser         = messageParameters.AsUser,
                IconEmoji      = messageParameters.IconEmoji,
                IconUrl        = messageParameters.IconUrl,
                LinkNames      = messageParameters.LinkNames,
                Parse          = messageParameters.Parse,
                ReplyBroadcast = messageParameters.ReplyBroadcast,
                ThreadTs       = messageParameters.ThreadTs,
                UnfurlLinks    = messageParameters.UnfurlLinks,
                UnfurlMedia    = messageParameters.UnfurlMedia,
                UserName       = messageParameters.UserName
            };

            if (messageParameters.Attachments == null || !messageParameters.Attachments.Any())
            {
                return(Execute <ChatPostMessageResponse>(request).Ok);
            }

            request.Attachments = new List <Attachment>();
            foreach (var attachment in messageParameters.Attachments)
            {
                var attachmentRequest = new Attachment
                {
                    Fallback   = attachment.Fallback,
                    Color      = attachment.Color?.Value,
                    Pretext    = attachment.Pretext,
                    AuthorName = attachment.AuthorName,
                    AuthorLink = attachment.AuthorLink,
                    AuthorIcon = attachment.AuthorIcon,
                    Title      = attachment.Title,
                    TitleLink  = attachment.TitleLink,
                    Text       = attachment.Text,
                    ImageUrl   = attachment.ImageUrl,
                    ThumbUrl   = attachment.ThumbUrl,
                    Footer     = attachment.Footer,
                    FooterIcon = attachment.FooterIcon,
                    TimeStamp  = CalculateTimestamp(attachment.TimeStamp)
                };
                request.Attachments.Add(attachmentRequest);
                if (attachment.Fields == null || !attachment.Fields.Any())
                {
                    continue;
                }

                attachmentRequest.Fields = new List <AttachmentField>();
                foreach (var field in attachment.Fields)
                {
                    attachmentRequest.Fields.Add(new AttachmentField
                    {
                        Title = field.Title,
                        Value = field.Value,
                        Short = field.IsShort
                    });
                }
            }

            return(Execute <ChatPostMessageResponse>(request).Ok);
        }