1

Тема: AHK: Telegram bot API

Приветствую. Я сделал скрипт, который заставляет писать бота в телеграм, как мне сделать так,  чтобы бот мог читать мои сообщения через ахк?

 bot_token := "токен"
            Global chat_id := чат ид
            Global msg_api := Format("https://api.telegram.org/bot{1}/sendMessage", bot_token)
            
            PostMsg(clipboard)
            
            PostMsg(msg_text)
            {
                WinHttpObj := ComObjCreate("WinHttp.WinHttpRequest.5.1")
                WinHttpObj.Open("POST", msg_api)
                WinHttpObj.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0")
                WinHttpObj.SetRequestHeader("Content-Type", "application/json; charset=UTF-8")
                mJson := Format("{ ""chat_id"": ""{1}"", ""text"": ""{2}"", ""parse_mode"" : ""{3}"" }", chat_id, msg_text, parse_mode)
                WinHttpObj.Send(mJson)
            }

2

Re: AHK: Telegram bot API

Если сумели написать скрипт для отправки сообщений, в чём проблема написать для чтения?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK: Telegram bot API

teadrinkerСкрипт для отправки сообщений я сделал по исходникам, исходник для чтения сообщений я нашел, но он у меня не работает, плюс этот уровень кодинга довольно выше моего, соответственно я не все понимаю: https://www.autohotkey.com/boards/viewtopic.php?f=76&t=42031#p192355

4

Re: AHK: Telegram bot API

Тогда лучше в той теме и спросили бы. Здесь я не припомню, чтобы кто-то этим занимался.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5 (изменено: AterEX, 2021-09-29 12:35:24)

Re: AHK: Telegram bot API

Справился сам, однако сам текст не выводится: https://i.imgur.com/ScuAcEN.png

#include json.ahk					; include to process JSON strings as objects

token := "токен"

q::		; press q to get updates
update := GetUpdates(token, , 1)				; limit result to 1 message
oUpd := JSON.Load(update)		; load JSON response string as an AHK object
msgbox % update

return

Esc::ExitApp

GetUpdates(botToken, offset="", updlimit=100, timeout=0){							
	If (updlimit>100)
		updlimit := 100
	; Offset = Identifier of the first update to be returned.
	url := "https://api.telegram.org/bot" botToken "/getupdates?offset=" offset "&limit=" updlimit "&timeout=" timeout
	updjson := URLDownloadToVar(url)					
	return updjson
}

URLDownloadToVar(url,ByRef variable=""){			
	try
	{	
		hObject:=ComObjCreate("WinHttp.WinHttpRequest.5.1")
		hObject.Open("GET",url)
		hObject.Send()
		variable:=hObject.ResponseText
		return variable
	}
}