#include "Telegram UDF.au3"
$ChatID = "Your_Chat_ID_For_Test";id чата куда отправлять файл
_InitBot("Bot_ID","Bot_Token"); токен бота
ConsoleWrite("Test _SendDocument -> " & @TAB & _SendDocument($ChatID,"C:\document.txt","Test _SendDocument") & @CRLF)
просто сделайID чата своего я узнал, токен бота тоже у бот фазера, а Bot_ID это как получить?
_InitBot("Bot_Token"); токен бота
Если мне память не изменяет, то это не проблема скрипта, а проблема сборки винды, что там tls отключенз начит заметил такую проблему _InitBot не работает с windows 7 на вин10 все отправляет и работает а на вин7 скрипт вылетает с ошибкой и на форуме чет такое надыбал английском что не корректно работает на вин7, как быть?
зашел, там галочки уже стоят.. может проблема еще в чем то может бытьЕсли мне память не изменяет, то это не проблема скрипта, а проблема сборки винды, что там tls отключен
Нажми сочетание клавиш Win+R и введи inetcpl.cpl
Перейди во вкладку "Дополнительно".
В списке найди протокол TLS 1.0, TLS 1.1 или TLS 1.2.
Поставь галочку, чтобы включить и нажми применить
ну и еще пройтись фиксом от майкрософт https://download.microsoft.com/down...F-BC2C-D69E5B9E9A68/MicrosoftEasyFix51044.msi
а потом ребутнуть комп и проверять
зашел, там галочки уже стоят.. может проблема еще в чем то может быть
#include <WinHttp.au3>
_SendDocument("чат id","токен бота","путь до файла")
Func _SendDocument($ChatID,$bot_token,$Document,$Caption = '',$ReplyMarkup = Default,$ReplyToMessage = '',$DisableNotification = False)
Local $Query = 'https://api.telegram.org/bot'&$bot_token&'/sendDocument'
Local $hOpen = _WinHttpOpen()
Local $Form = '<form action="' & $Query & '" method="post" enctype="multipart/form-data">' & _
'<input type="text" name="chat_id"/>' & _
'<input type="file" name="document"/>' & _
'<input type="text" name="caption"/>'
If $ReplyMarkup <> Default Then $Form &= ' <input type="text" name="reply_markup"/>'
If $ReplyToMessage <> '' Then $Query &= '<input type="text" name="reply_to_message_id"/>'
If $DisableNotification Then $Form &= ' <input type="text" name="disable_notification"/>'
$Form &= '</form>'
Local $Response = _WinHttpSimpleFormFill($Form,$hOpen,Default, _
"name:chat_id", $ChatID, _
"name:document", $Document, _
"name:caption", $Caption, _
"name:reply_markup", $ReplyMarkup, _
"name:reply_to_message_id", $ReplyToMessage, _
"name:disable_notification", $DisableNotification)
_WinHttpCloseHandle($hOpen)
MsgBox(0,"",$Response)
EndFunc
при отправке просто выводит пустой msgbox , сообщение не отправляется, но если выполнить на вин10 его, то все отправляет) но при этом ошибки на вин7 уже нету как на старом скрипте, просто ничего не отправляетКод:#include <WinHttp.au3> _SendDocument("чат id","токен бота","путь до файла") Func _SendDocument($ChatID,$bot_token,$Document,$Caption = '',$ReplyMarkup = Default,$ReplyToMessage = '',$DisableNotification = False) Local $Query = 'https://api.telegram.org/bot'&$bot_token&'/sendDocument' Local $hOpen = _WinHttpOpen() Local $Form = '<form action="' & $Query & '" method="post" enctype="multipart/form-data">' & _ '<input type="text" name="chat_id"/>' & _ '<input type="file" name="document"/>' & _ '<input type="text" name="caption"/>' If $ReplyMarkup <> Default Then $Form &= ' <input type="text" name="reply_markup"/>' If $ReplyToMessage <> '' Then $Query &= '<input type="text" name="reply_to_message_id"/>' If $DisableNotification Then $Form &= ' <input type="text" name="disable_notification"/>' $Form &= '</form>' Local $Response = _WinHttpSimpleFormFill($Form,$hOpen,Default, _ "name:chat_id", $ChatID, _ "name:document", $Document, _ "name:caption", $Caption, _ "name:reply_markup", $ReplyMarkup, _ "name:reply_to_message_id", $ReplyToMessage, _ "name:disable_notification", $DisableNotification) _WinHttpCloseHandle($hOpen) MsgBox(0,"",$Response) EndFunc
Попробовать напрямую, если так же будет ошибка, то уже гуглить на что именно жалуется
Сообщение автоматически объединено:
Можно еще конечно попробовать сделать через winhttp.winhttprequest.5.1, но сомневаюсь что это решит проблему
ибо проблема на стороне конкретно винды, а не скрипта
при отправке просто выводит пустой msgbox , сообщение не отправляется, но если выполнить на вин10 его, то все отправляет) но при этом ошибки на вин7 уже нету как на старом скрипте, просто ничего не отправляет
_SendDocument("чат id","токен бота","путь до файла")
Func _SendDocument($chat_id,$bot_token,$Document)
$sBoundary = StringFormat("%s%.5f", "MyBot", Random(10000, 99999))
$oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
$oHTTP.Open("POST", 'https://api.telegram.org/bot'&$bot_token&'/sendDocument')
$oHTTP.SetRequestHeader("Content-Type", "multipart/form-data; boundary="&$sBoundary)
$Data = "--"&$sBoundary & @CRLF
$Data &= 'Content-Disposition: form-data; name="chat_id"' & @CRLF & @CRLF
$Data &= $chat_id & @CRLF
$Data &= "--" & $sBoundary & @CRLF
$Data &= 'Content-Disposition: form-data; name="caption"' & @CRLF & @CRLF
$Data &= "" & @CRLF
$Data &= "--" & $sBoundary & @CRLF
$Data &= 'Content-Disposition: form-data; name="parse_mode"' & @CRLF & @CRLF
$Data &= "HTML" & @CRLF
$Data &= "--" & $sBoundary & @CRLF
$Data &= 'Content-Disposition: form-data; name="document"; filename="1.txt"' & @CRLF
$Data &= 'Content-Type: document' & @CRLF & @CRLF
$Data &= BinaryToString(FileRead(FileOpen($Document, 16))) & @CRLF
$Data &= "--"&$sBoundary & "--"
$Data = StringToBinary($Data,1)
$oHTTP.Send($Data)
MsgBox(0,$oHTTP.status,$oHTTP.ResponseText)
EndFunc