Telegram Bot API не отправляет файл?

134
28 января 2022, 05:20

С наступающим! (для всех, читающих в 2020 - с наступившим!) )

Не могу разобраться с ботом - пытаюсь отправить себе файл с ПК. Собственно, в чем суть бота: дома, в домашней сети wifi стоит Rasbery PI в качестве сервера, на котором в цикле крутится серверная часть с ботом - бот принимает url, по которому нужно сохранить web страницу локально на внешний usb подключенный к малине. Но, я так же, хочу иметь доступ к сохраненным файлам не только в домашней сети, а делать статический ip на малине (на ней так же стоит apache и COPS (OPDS каталогизатор)) - не хочется, поэтому, организовал "общение" все через того же бота: Собственно, "общение" с ботом (знаю, что можно сделать клавиатуру с кнопками, но это больше тренировочный проект - для себя и тут мне даже интереснее сделать велосипед)

if (e.Message.Text.StartsWith("$"))//command
        {
            switch (e.Message.Text)
            {
                case "$help":
                    bot.SendTextMessageAsync(new Telegram.Bot.Types.ChatId(id), "send me some commands:\n $help  -to see commands list\n" +
                        "$books_log - to see list of saved books (from log file)\n $books_list - to see list of saved books(get files name from storage)\n $download - to download some article");
                    break;
                case "$books_log":
                    bot.SendTextMessageAsync(new Telegram.Bot.Types.ChatId(id), File.ReadAllText("URLLogs.txt"));
                    break;
                case "$books_list":
                    GetBooksList();
                    break;

                default:
                    if (e.Message.Text.StartsWith("$download"))
                    {
                        string pathToFile = GetDownloadFilePath(e.Message.Text.Substring(e.Message.Text.IndexOf(" ") + 1), e);
                        try
                        {
                            if (File.Exists(pathToFile))
                            {
                                Console.WriteLine("file exist");
                            }
                            else
                            {
                                Console.WriteLine("file NOT exist");
                            }

                            using (var stream = File.OpenRead(pathToFile))
                            {
                                InputOnlineFile iof = new InputOnlineFile(stream);
                                iof.FileName = "";
                                var send = bot.SendDocumentAsync(new Telegram.Bot.Types.ChatId(id), iof, "Сообщение");
                            }
                            //bot.SendDocumentAsync(new Telegram.Bot.Types.ChatId(id), new Telegram.Bot.Types.InputFiles.InputOnlineFile(pathToFile));
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine(ex);
                        }
                    }
                    break;
            }
            return false;
        }

Суть проблемы: код отрабатывает, без ошибок, в консоль выводится, что файл существует, но сам файл (htm страницу) - я не получаю.

READ ALSO
Обновление mysql

Обновление mysql

После обновления версии mysql по этой статье и перезагрузки сервера, перестало заходить по старым доступам в бд и на сайтах пишет нет подключения...

103
Почему не переключает?

Почему не переключает?

Почему когда я вставляю код с выбором option в select и вывод данные в другом блоке, здесь всё работаетА когда вставляю на сайте, выбивается ошибка:

77
Почему функция становится анонимной [дубликат]

Почему функция становится анонимной [дубликат]

Почему функция обернутая событием становится анонимной?

68
Не меняется цвет кнопки

Не меняется цвет кнопки

Значение dddd меняется при нажатии на кнопку

166