static void HandleMessage(Message m) { if (m.Text == null) return; MessageTarget target = ((MessageTarget) m.Chat ?? m.From); if (m.Text.ToLower() == "bots are dumb") { string messageToSend = "You're dumb, " + m.From.Username + "!"; bot.SendMessage(target, messageToSend); } if (m.Text.ToLower() == "who are you talking to?") { bot.SendMessage(target, "You, dummy!", false, m); } if (m.Text.ToLower() == "hey") { bot.SendMessage(target, "Say that to my face, @"+m.From.Username, false, m, new ForceReplyOptions(true)); } if (m.Text.Contains("/cc")) { bot.ForwardMessage(m, m.From); } if (m.Text.ToLower() == "hold on a second") { bot.SendChatAction(target, ChatAction.Typing); Thread.Sleep(1500); bot.SendMessage(target, "...okay, now what?"); } if (m.Text.ToLower() == "hurt me plenty") { bot.SendPhoto(target, new FileStream("doomimage.png", FileMode.Open), "RIP AND TEAR", "doomimage.png"); } }
/// <summary> /// Sends a message to the given target (user or group chat) /// </summary> /// <param name="target">A User or GroupChat</param> /// <param name="messageText">The text of the message</param> /// <param name="disableLinkPreview">Whether or not to disable link previews</param> /// <param name="replyTarget">The message to reply to</param> /// <param name="forceReplyOptions">Specifies that the message must be replied to, and what users must reply</param> /// <returns>The message that was sent.</returns> public Message SendMessage(MessageTarget target, string messageText, bool disableLinkPreview = false, Message replyTarget = null, ForceReplyOptions forceReplyOptions = null) { var request = new RestRequest("sendMessage", Method.POST) { RootElement = "result" }; request.AddParameter("chat_id", target.Id); request.AddParameter("text", messageText); request.AddParameter("disable_web_page_preview", disableLinkPreview); if (replyTarget != null) { request.AddParameter("reply_to_message_id", replyTarget.MessageId); } if (forceReplyOptions != null) { request.AddParameter("reply_markup", SimpleJson.SerializeObject(forceReplyOptions)); } var result = _client.Execute<Message>(request); return result.Data; }
/// <summary> /// Forward a message from one chat to another. /// </summary> /// <param name="message">The message to forward.</param> /// <param name="target">The user/group to send to.</param> /// <returns>The message that was forwarded</returns> public Message ForwardMessage(Message message, MessageTarget target) { var request = new RestRequest("forwardMessage", Method.POST) { RootElement = "result" }; request.AddParameter("chat_id", target.Id); request.AddParameter("from_chat_id", (message.Chat == null ? message.From.Id : message.Chat.Id)); request.AddParameter("message_id", message.MessageId); var result = _client.Execute<Message>(request); return result.Data; }