The 1C:Enterprise developers forum

#1
People who like this: 0 Yes / 0 No
Just came
Rating: 0
Joined: Sep 2, 2014
Company: Her Süreç Yazılım

Hello,
I want to send a file to Telegram bot. Do you have a code example you've done before? Or how will the method be?

 
#2
People who like this: 0 Yes / 0 No
Administrator
Rating: 29
Joined: Oct 3, 2019
Company:

Hi!

I don’t have a ready-made example at the moment…
Give me a little time — I’ll prepare a small example for you later this week.

OK?

 
#3
People who like this: 0 Yes / 0 No
Just came
Rating: 0
Joined: Sep 2, 2014
Company: Her Süreç Yazılım

Thank you very much.

 
#4
People who like this: 0 Yes / 0 No
Administrator
Rating: 29
Joined: Oct 3, 2019
Company:

Hello Ertuğrul,

try pls next code:


Code
Function sendFileToTelegram(pathToFile)
   
   AccessToken = "Access token";
   ServerTg  = "api.telegram.org";
   ChatID = "123456789";
   
   Boundary = "----" + String(New UUID());
   
   File = New File(pathToFile);
   
   arrayFilesToMerge = New Array;
   
   arrayFilesToMerge.Add(GetTempFileName("txt"));
   fileToSendBegin = New TextWriter(arrayFilesToMerge[0], TextEncoding.UTF8);
   
   initialData = "--%Boundary%
   |Content-Disposition: form-data; name=""chat_id""
   |
   |%ChatID%
   |--%Boundary%
   |Content-Disposition: form-data; name=""document""; filename=""%FileName%""
   |";
   
   initialData = StrReplace(initialData,"%Boundary%",   Boundary);
   initialData = StrReplace(initialData,"%ChatID%",   ChatID);
   initialData = StrReplace(initialData,"%FileName%",   File.Name);
   
   fileToSendBegin.WriteLine(initialData );
   fileToSendBegin.Close();
   
   arrayFilesToMerge.Add(pathToFile);
   
   arrayFilesToMerge.Add(GetTempFileName("txt"));
   
   fileToSendEnd = New TextWriter(arrayFilesToMerge[2], TextEncoding.UTF8);
   
   finalData = "
   |--%Boundary%--";
   finalData = StrReplace(finalData,"%Boundary%",Boundary);
   
   fileToSendEnd.WriteLine(finalData);
   fileToSendEnd.Close();
   
   outputFileName = GetTempFileName("txt");
   MergeFiles(arrayFilesToMerge, outputFileName);
   
   
   HTTPConnection = New HTTPConnection(ServerTg,443,,,,,New OpenSSLSecureConnection());
   
   query = "bot" 
   + AccessToken 
   + "/sendDocument";
   
   HTTPRequest = New HTTPRequest(query);
   HTTPRequest.Headers.Insert("Connection", "keep-alive");
   HTTPRequest.Headers.Insert("Content-Type", "multipart/form-data; boundary=" + Boundary);
   
   HTTPRequest.SetBodyFileName(outputFileName);
   
   Try
      HTTPResponse = HTTPConnection.Post(HTTPRequest);
   Except
      Message(ErrorDescription());
   EndTry;
   
EndFunction

 
#5
People who like this: 0 Yes / 0 No
Just came
Rating: 0
Joined: Sep 2, 2014
Company: Her Süreç Yazılım

Hello Aleksandr,
Thank you very much. I'm trying the codes right away.

 
#6
People who like this: 0 Yes / 0 No
Administrator
Rating: 29
Joined: Oct 3, 2019
Company:

You’re very welcome!

Please let me know later how it went :-)

 
Subscribe
Users browsing this topic (guests: 1, registered: 0, hidden: 0)
Be the first to know tips & tricks on business application development!

A confirmation e-mail has been sent to the e-mail address you provided .

Click the link in the e-mail to confirm and activate the subscription.