I am programing an excel macro that sends a screenshots of the results after running another macro . The taken screenshot is saved as a jpg image in the directory C:\documents\SCREENSHOT. I want to send the picture1.jpg "C:\documents\SCREENSHOT\picture1.jpg" to a telegram group usig a bot.
I can easily send text messages using the following code.
Private Sub telegram_pruebas() 'Solicita un mensaje esta función del mensaje y el ID del chat
Dim objRequest As Object 'Con lo que se crea la solicitud de internet
Dim datos_posteo As String 'Lo que enviará por mensaje
Dim token, ChatID, mensaje As String
token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
ChatID = -xxxxxxxxxxxx
mensaje = "xxxxxxxx"
datos_posteo = "chat_id=" & ChatID & "&text=" & mensaje 'Se 'Se le muestra al robot que enviar y a que chat
Set objRequest = CreateObject("MSXML2.XMLHTTP") 'Crea un request como archivo XHLM
With objRequest
.Open "POST", "https://api.telegram.org/bot" & token & "/sendMessage?", False 'Aqui esta la dirección del sitio web con el api del robot
.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" 'No se que sea
.send (datos_posteo) 'La indicación de enviar el texto al chat
End With
End Sub
The problem is that I can not find the way to send a image that is stored in my computer, I saw the documentation and it says that it is necessary to use the multipart/form-data method but I do not know how to change my Sub telegram_pruebas() to use that method, I have seen all the examples in stack of overflow and another pages and I tried some like this
Private Sub telegram_pruebas_photo() 'Solicita un mensaje esta función del mensaje y el ID del chat
Dim objRequest As Object 'Con lo que se crea la solicitud de internet
Dim datos_posteo As String 'Lo que enviará por mensaje
Dim token, ChatID, photo As String
token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
ChatID = -xxxxxxxxxxx
photo = "C:\documents\SCREENSHOT\picture1.jpg"
datos_posteo = "chat_id=" & ChatID & "&photo=" & photo 'Se 'Se le muestra al robot que enviar y a que chat
Set objRequest = CreateObject("MSXML2.XMLHTTP") 'Crea un request como archivo XHLM
With objRequest
.Open "POST", "https://api.telegram.org/bot" & token & "/sendPhoto?", False 'Aqui esta la dirección del sitio web con el api del robot
.setRequestHeader "Content-Type", "multipart/form-data" 'No se que sea
.send (datos_posteo) 'La indicación de enviar el texto al chat
response = .responseText
End With
MsgBox response
End Sub
this does not works, i get a empty response.
Does somebody can modify my code to get the problem or at least help me to understand my error..
I have tried this pages to try to undertand:
How to send a desktop photo to telegram using Excel VBA Sending local storage photo into Telegram with VBA
Sending locally hosted photo on telegram bot
Sending Photo to Telegram (API / Bot)
And much others too.
Thanks