Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to send File via Telegram Bot

Tags:

telegram-bot

I need to send txt File using TelegramBot API .

I already tried https://api.telegram.org/botMYT0KEN/sendDocument?chat_id=569502265&document=/Users/users/Desktop/file.txt

and have issue :

{"ok":false,"error_code":400,"description":"Bad Request: wrong remote file id specified: Wrong string length”}

like image 676
JennyB Avatar asked Apr 02 '19 08:04

JennyB


People also ask

What is file sharing bot in Telegram?

Telegram Bot to store Posts and Documents and it can Access by Special Links.

Can I send message by bot in Telegram?

Getting StartedOpen the telegram app and search for @BotFather. Click on the start button or send “/start”. Then send “/newbot” message to set up a name and a username. After setting name and username BotFather will give you an API token which is your bot token.

How do I download a file or photo that was sent to my Telegram bot?

The file can then be downloaded via the link https://api.telegram.org/file/bot/, where is taken from the response. It is guaranteed that the link will be valid for at least 1 hour. When the link expires, a new one can be requested by calling getFile again. For the moment, bots can download files of up to 20MB in size.


Video Answer


2 Answers

To complete Donny's answer, I would like to add an example of sending .txt file as a document.

Looks like you're using OS X as an operating system, which has curl utility preinstalled.

Open terminal and make a request like this:

curl -v -F "chat_id=569502265" -F document=@/Users/users/Desktop/file.txt https://api.telegram.org/bot<TOKEN>/sendDocument
like image 82
Ivan Vinogradov Avatar answered Sep 22 '22 11:09

Ivan Vinogradov


From Telegram official documentation

Sending files There are three ways to send files (photos, stickers, audio, media, etc.):

If the file is already stored somewhere on the Telegram servers, you don't need to reupload it: each file object has a file_id field, simply pass this file_id as a parameter instead of uploading. There are no limits for files sent this way. Provide Telegram with an HTTP URL for the file to be sent. Telegram will download and send the file. 5 MB max size for photos and 20 MB max for other types of content. Post the file using multipart/form-data in the usual way that files are uploaded via the browser. 10 MB max size for photos, 50 MB for other files. Sending by file_id

It is not possible to change the file type when resending by file_id. I.e. a video can't be sent as a photo, a photo can't be sent as a document, etc. It is not possible to resend thumbnails. Resending a photo by file_id will send all of its sizes. file_id is unique for each individual bot and can't be transferred from one bot to another. Sending by URL

When sending by URL the target file must have the correct MIME type (e.g., audio/mpeg for sendAudio, etc.). In sendDocument, sending by URL will currently only work for gif, pdf and zip files. To use sendVoice, the file must have the type audio/ogg and be no more than 1MB in size. 1–20MB voice notes will be sent as files. Other configurations may work but we can't guarantee that they will.

https://core.telegram.org/bots/api

This is what you need from your question:

Post the file using multipart/form-data in the usual way that files are uploaded via the browser. 10 MB max size for photos, 50 MB for other files

like image 22
Donny Avatar answered Sep 22 '22 11:09

Donny