#include "fivewin.ch"
function Main()
local odoc := CreateObject( "MSXML2.DOMDocument" )
local ohttp := CreateObject( "MSXML2.XMLHTTP" )
local cTOKEN:= "mytoken"
local URL:="https://api.telegram.org/bot"+cTOKEN+"/getUpdates"
ohttp:Open( "POST" ,URL, .F. )
oHttp:SetRequestHeader("Accept" ,"application/xml")
oHttp:SetRequestHeader("Content-Type","application/json")
oDoc:async:=.f.
oDoc:LoadXml('<?xml version=""1.0"" encoding=""utf-8""?>')
oHttp:Send(oDoc:xml)
cText:=Alltrim(oHttp:responseText)
cText=strtran(cText,'{"ok":true,"result":[','')
cText=alltrim(cTExt)
ar:=HB_ATOKENS( cTEXT, '{"update_id":' ) // split json string to array
for i=2 to len(ar)
x:=ar[i]
nUpdateId:=GetUpdateId(x)
?nUpdateId, "Message_id",ExtractValue(x,"message_id"),"From_Id",ExtractValue(x,'from":{"id'),"Chat_Id",ExtractValue(x,'"chat":{"id')
fName:=ExtractValue(x,"first_name")
fname:=strTran(fname,'}','')
?fname
?GetMsg(x)
next i
return nil
function ExtractValue(x,srchValue)
return SubStr( x, nAt := At( srchValue, x ) + Len( srchValue )+2, At( ",", SubStr( x, nAt ))-1)
//?SubStr( x, nAt := At( "message_id", x ) + Len( "message_id" )+2, At( ",", SubStr( x, nAt + Len( "message_id" ) )) -1 )
function GetUpdateId(x)
substr(x,1,at(",",x)-1)
function Getmsg(x)
cMsg:=RIGHT(x,LEN(x) - RAT(":", x) - 1)
cMsG:=substr(cMsg,1,rat('"',cMsg)-1)
return cMsg
function sendmsg(cChatId,cMsg) // CHAT_ID how to get chat_id please look my first post
local odoc := CreateObject( "MSXML2.DOMDocument" )
local ohttp := CreateObject( "MSXML2.XMLHTTP" )
local cTOKEN:= "mytoken"
ohttp:Open( "POST" ,"https://api.telegram.org/bot"+cTOKEN+"/sendMessage?text="+cMsg+"&chat_id="+cChatId+'"', .F. )
ohttp:SetRequestHeader( "Accept" , "application/xml")
ohttp:SetRequestHeader( "Content-Type" ,"application/json" )
oDoc:async := .f.
oDoc:LoadXml('<?xml version=""1.0"" encoding=""utf-8""?>')
ohttp:Send(oDoc:xml)
oDoc:=Nil
return nil