Форум программистов, компьютерный форум, киберфорум
C#: API, боты
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.65/34: Рейтинг темы: голосов - 34, средняя оценка - 4.65
0 / 0 / 0
Регистрация: 03.12.2017
Сообщений: 1
1

Как заставить отправлять telegram бота отправлять сообщения в заданное время?

04.12.2017, 00:15. Просмотров 7124. Ответов 1

в общем, написал простейшего бота со своим расписанием пар на каждый день, и есть задумка об оповещении о парах за час до них отправкой сообщения. Пока пытался собрать деревяшки в костыль, понял, что: 1) бот понимает только комманды, 2) может взять время только из присланного мной сообщением. Для меня это большая проблема, так как мне необходимо затаймить соо от бота, ничего ему не отправляя. Помогите, пожалуйста, с реализацией данной идеи, буду очень благодарен. Ниже оставлю коды контроллера сообщений, шаблон для команд, на которые отвечает бот и пример команды.

MessageController
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
using System.Threading.Tasks;
using System.Web.Http;
using System.Web.Http.Results;
using Telegram.Bot.Types;
using TelegraBot.Models;
 
namespace TelegraBot.Controllers
{
    public class MessageController : ApiController
    {
        [Route(@"api/message/update")] //webhook uri part
        public async Task<OkResult> Update([FromBody]Update update)
        {
            var commands = Bot.Commands;
            var message  = update.Message;
            var client   = await Bot.Get();
 
            foreach (var command in commands)
            {
                if (command.Contains(message.Text))
                {
                    command.Execute(message, client);
                    break;
                }
            }
 
            return Ok();
        }
    }
}

шаблон команд

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using Telegram.Bot;
using Telegram.Bot.Types;
 
namespace TelegraBot.Models.Commands
{
    public abstract class Command
    {
        public abstract string Name { get; }
 
        public abstract void Execute(Message message, TelegramBotClient client);
 
        public bool Contains(string command)
        {
            return command.Contains(Name);
        }
    }
}
ну и пример моей команды для бота

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
namespace TelegraBot.Models.Commands
{
    public class Chetverg : Command
    {
 
        public override string Name => "/ch";
 
        public override void Execute(Message message, TelegramBotClient client)
        {
            var chatId = message.Chat.Id;
            var messageId = message.MessageId;
            string answer = "строка с текстом";
            var username = message.Chat.FirstName;
            client.SendTextMessageAsync(chatId, username + ", " + answer);
             
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.12.2017, 00:15
Ответы с готовыми решениями:

Telegram bot: как отправлять сообщения пользователю в определённый момент времени?
Как отправлять сообщения пользователю, в определённый момент времени?

Как заставить сервис отправлять сообщения?
Добрый день, есть некий WCF сервис реализованный примерно следующим образом. И небольшое консольное...

Как отправлять запросы к Telegram API?
ВНИМАНИЕ, РАБОТАТЬ С АПИ БОТОВ МНЕ НЕ НУЖНО! Решил написать парсер, а в документации только...

Как отправлять альбом фотографий через Telegram.Bot
Столкнулся с такой же проблемой...

1
0 / 0 / 0
Регистрация: 17.10.2018
Сообщений: 1
24.11.2020, 17:39 2
Alex Koff, уже прошло несколько лет и я столкнулась с такой же проблемой. Вы уже нашли решение?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.11.2020, 17:39

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как выводить сообщения? И отправлять?
Допустим, у пользователя есть нумерованный список станций метро Барселоны. Необходимо написать код,...

Как заставить <button> отправлять html во фрейм?
Ребята, куда в скрипт который ниже нужно воткнуть target=&quot;content&quot; чтобы по этой кнопке ololo.html...

Как заставить форму отправлять введённые данные на email?
Здравствуйте, уважаемые форумчане! У меня есть вот такая форма: &lt;form&gt; &lt;form action=&quot;mail.php&quot;...

Как заставить аутлук отправлять присьмо при старте
Всем доброго времени суток. Прошу не судить меня строго, я вообще нулевой в плане программирования....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.