Я пытаюсь добавить встроенную клавиатуру Telegram с 4 кнопками, каждая с текстом callback_data в этот фрагмент кода. Но мне это кажется невозможным, я не понимаю, как писать в таком формате .. Извините, я новичок в программировании ...
API для InLineKeyboard
Надеюсь на помощь ..
int SendPhoto(string &_photo_id,
const long _chat_id,
const string _local_path,
const string _caption=NULL,
const bool _common_flag=false,
const int _timeout=10000)
{
.....
//---
int file_size=(int)FileSize(file);
uchar photo[];
ArrayResize(photo,file_size);
FileReadArray(file,photo,0,file_size);
FileClose(file);
//--- WebRequest
uchar result[];
string result_headers;
string url=StringFormat("%s/bot%s/sendPhoto",TELEGRAM_BASE_URL,m_token);
//--- 1
uchar data[];
//--- add chart_id
ArrayAdd(data,"\r\n");
ArrayAdd(data,"--"+hash+"\r\n");
ArrayAdd(data,"Content-Disposition: form-data; name=\"chat_id\"\r\n");
ArrayAdd(data,"\r\n");
ArrayAdd(data,IntegerToString(_chat_id));
ArrayAdd(data,"\r\n");
if(StringLen(_caption)>0)
{
ArrayAdd(data,"--"+hash+"\r\n");
ArrayAdd(data,"Content-Disposition: form-data; name=\"caption\"\r\n");
ArrayAdd(data,"\r\n");
ArrayAdd(data,_caption);
ArrayAdd(data,"\r\n");
}
ArrayAdd(data,"--"+hash+"\r\n");
ArrayAdd(data,"Content-Disposition: form-data; name=\"photo\"; filename=\"lampash.gif\"\r\n");
ArrayAdd(data,"\r\n");
ArrayAdd(data,photo);
ArrayAdd(data,"\r\n");
ArrayAdd(data,"--"+hash+"--\r\n");
// SaveToFile("debug.txt",data);
//---
string headers="Content-Type: multipart/form-data; boundary="+hash+"\r\n";
int res=WebRequest("POST",url,headers,_timeout,data,result,result_headers);
.....
}
Вот несколько фрагментов кода, если вы можете помочь ..
#define KEYB_MAIN (m_lang==LANGUAGE_EN)?"[[\"Account Info\"],[\"Quotes\"],[\"Charts\"]]":"[[\"Информация\"],[\"Котировки\"],[\"Графики\"]]"
#define KEYB_SYMBOLS "[[\""+EMOJI_TOP+"\",\"GBPUSD\",\"EURUSD\"],[\"AUDUSD\",\"USDJPY\",\"EURJPY\"],[\"USDCAD\",\"USDCHF\",\"EURCHF\"]]"
#define KEYB_PERIODS "[[\""+EMOJI_TOP+"\",\"M1\",\"M5\",\"M15\"],[\""+EMOJI_BACK+"\",\"M30\",\"H1\",\"H4\"],[\" \",\"D1\",\"W1\",\"MN1\"]]"
#define KEYB_SINO "[[\"SI\"],[\"NO\"],[\"ANNULLA\"]]"
#define KEYB_SL "[[\"1.5\",\"2.5\"],[\"3.5\",\"4.5\"],[\"ANNULLA\"]]"
#define KEYB_RR "[[\"1\",\"2\"],[\"3\",\"4\"],[\"ANNULLA\",\"FREE\"]]"
#define KEYB_COMMENT "[[\"TRATT\",\"TREND\"],[\"APPOG\",\"SPESSA\"],[\"ANNULLA\"]]"
//+------------------------------------------------------------------+
string ReplyKeyboardMarkup(const string keyboard,
const bool resize,
const bool one_time)
{
string result=StringFormat("{\"keyboard\": %s, \"one_time_keyboard\": %s, \"resize_keyboard\": %s, \"selective\": false}",UrlEncode(keyboard),BoolToString(resize),BoolToString(one_time));
return(result);
}
//+------------------------------------------------------------------+
string ReplyKeyboardHide()
{
return("{\"hide_keyboard\": true}");
}
//+------------------------------------------------------------------+
string ForceReply()
{
return("{\"force_reply\": true}");
}