Что нового

Отправить фото C:\Skripti\photo.jpg в телеграмм с помощью бота

MSI

Новичок
Сообщения
3
Репутация
0
Код:
https://api.telegram.org/bot<Мой токен>/sendPhoto?chat_id=<мой ID>&photo=https://yandex.ru/collections/card/5e495498ada5968110833b1b/
-это рабочий вариант отправки сообщения через IE.
Код:
https://api.telegram.org/bot<Мой токен>/sendPhoto?chat_id=<мой ID>&photo='C:\Skripti\photo.jpg'
- это что необходимо сделать.
В телеграмм метод sendPhoto параметр photo описание ( Фото для отправки. Вы можете либо передать идентификатор file_id в виде строки для повторной отправки фотографии, которая уже находится на серверах Telegram, либо загрузить новую фотографию с помощью multipart/form-data. ) Не понимаю как это реализовать.
Ссылка на автора кода:
https://autoit-script.ru/threads/otpravka-photo-cherez-telegram-api.21521/
Использую код:
Код:
Func Telegram_SendImage($FileToUploadPath, $TelegramToken, $TelegramChatID, $Caption = "")
    $sAddress = "https://api.telegram.org/bot"&$TelegramToken&"/sendPhoto" ; the address of the target  (https or http, makes no difference - handled automatically)

    If $Caption = "" Then
        $sForm = _
            '<form action="' & $sAddress & '" method="post" enctype="multipart/form-data">' & _
            '    <input type="text" name="chat_id" />' & _
            '    <input type="file" name="photo"/>' & _
            '</form>'
    Else
        $sForm = _
            '<form action="' & $sAddress & '" method="post" enctype="multipart/form-data">' & _
            '    <input type="text" name="chat_id" />' & _
            '    <input type="file" name="photo"/>' & _ ;
            '    <input type="text" name="caption"/>' & _ ;
            '</form>'
    EndIf

    ; Initialize and get session handle
    $hOpen = _WinHttpOpen()

    $hConnect = $sForm ; will pass form as string so this is for coding correctness because $hConnect goes in byref

    If $Caption = "" Then
        ; Fill form
        $sHTML = _WinHttpSimpleFormFill($hConnect, $hOpen, _
                Default, _
                "name:chat_id", $TelegramChatID, _
                "name:photo", $FileToUploadPath)
    Else
        ; Fill form
        $sHTML = _WinHttpSimpleFormFill($hConnect, $hOpen, _
                Default, _
                "name:chat_id", $TelegramChatID, _
                "name:photo", $FileToUploadPath, _
                "name:caption", $Caption)
    EndIf

    If @error Then
        MsgBox(4096, "Error", "Error number = " & @error)
    Else
        ConsoleWrite($sHTML & @CRLF)
    EndIf

    ; Close handles
    _WinHttpCloseHandle($hConnect)
    _WinHttpCloseHandle($hOpen)
EndFunc

Вызываю эту функцию:
Код:
$TelegramToken = "<Мой токен>"
$TelegramChatID = "<Мой ID>"
$FileToUploadPath = "C:\Skripti\photo.jpg"
$Caption = ''

Telegram_SendImage($FileToUploadPath, $TelegramToken, $TelegramChatID, $Caption)


Выдает сообщение Error number = 4
Подскажите как исправить данную ошибку?
Сообщение автоматически объединено:

Сообщите пожалуйста возможно ли это?
смотрел примеры Pyton, там получается такое реализовать.
Ну и придумал альтернативу для себя:
Загружать фото с диска С:\ в https://ru.imgbb.com/ указывая параметр удаления через 5 мин.
И пользоваться
Код:
https://api.telegram.org/bot<Мой токен>/sendPhoto?chat_id=<мой ID>&photo=https://ibb.co/t2VG6CT
 
Последнее редактирование:
Верх