Отправка фотографии в Telegram (API / Bot) - PullRequest
0 голосов
/ 02 июня 2018

Я отправляю сообщения из Excel в telegram.Работает хорошо.Но как я могу отправить фото?Я не понимаю (https://core.telegram.org/bots/api#sendphoto)

Спасибо за помощь!

Мое отправленное сообщение:

Dim objRequest As Object
Dim strChatId As String
Dim strMessage As String
Dim strPostData As String
Dim strResponse As String

 strChatId = Worksheets("Einstellungen").Cells(3, "AB")
 strMessage = Report
 APIcode = Worksheets("Einstellungen").Cells(2, "AB")

strPostData = "chat_id=" & strChatId & "&text=" & strMessage

 Set objRequest = CreateObject("MSXML2.XMLHTTP")
With objRequest
  .Open "POST", "https://api.telegram.org/" & APIcode & "/sendMessage?", False
  .setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
  .send (strPostData)
   GetSessionId = .responseText
End With

1 Ответ

0 голосов
/ 02 июня 2018

Если ваш код работает как есть для простых текстовых сообщений, вам нужно всего лишь внести в него пару изменений.

Возможно, вы в настоящее время используете API sendMessage метод, который принимает параметры chat_id и text.

Вы хотите использовать метод sendPhoto, которыйрассказывает о параметрах chat_id и photo (но без параметра text).

Так что это немного в темноте, так как я никогда не использовал и не слышал о Telegram, и я неу меня нет ключа, поэтому я не могу его проверить, но теоретически вы можете отправить фотографию с URL-адреса, например:

Sub telegram_SendPhoto()

    Const photoURL = "https://i.imgur.com/0eH6d1v.gif" 'URL of photo

    Dim objRequest As Object, strChatId As String, APIcode As String
    Dim strPostData As String, strResponse As String

    strChatId = Worksheets("Einstellungen").Cells(3, "AB")
    APIcode = Worksheets("Einstellungen").Cells(2, "AB")

    strPostData = "chat_id=" & strChatId & "&photo=" & photoURL

    Set objRequest = CreateObject("MSXML2.XMLHTTP")
    With objRequest
        .Open "POST", "https://api.telegram.org/" & APIcode & "/sendPhoto?", False
        .setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
        .send (strPostData)
        strResponse = .responseText
    End With

    MsgBox strResponse

End Sub

Передайте file_id как String для отправки фотографии, существующей на серверах Telegram (рекомендуется), передайте HTTP-URL в виде String для Telegram, чтобы получить фотографию из Интернета (см. Выше), или загрузите новую фотографию, используя multipart/form-data. Подробнее об отправке файлов »

...