6 m_json =
"{\"inline_keyboard\":[[]]}\"";
14 deserializeJson(doc, m_json);
17 DeserializationError error = deserializeJson(doc, m_json);
21 Serial.print(F(
"deserializeJson() failed: "));
22 Serial.println(error.f_str());
26 JsonArray rows = doc[
"inline_keyboard"];
27 rows.createNestedArray();
30 serializeJson(doc, m_json);
40 InlineButton *inlineButton =
new InlineButton();
41 if (_firstButton ==
nullptr)
42 _firstButton = inlineButton;
44 _lastButton->nextButton = inlineButton;
45 inlineButton->argCallback = onClick;
46 inlineButton->btnName = (
char*)command;
47 _lastButton = inlineButton;
51 DeserializationError error = deserializeJson(doc, m_json);
55 Serial.print(F(
"deserializeJson() failed: "));
56 Serial.println(error.f_str());
60 JsonArray rows = doc[
"inline_keyboard"];
61 JsonObject button = rows[rows.size()-1].createNestedObject();
63 button[
"text"] = text ;
65 button[
"url"] = command;
67 button[
"callback_data"] = command;
72 serializeJson(doc, m_json);
77void InlineKeyboard::checkCallback(
const TBMessage &msg) {
78 for(InlineButton *_button = _firstButton; _button !=
nullptr; _button = _button->nextButton){
79 if( msg.
callbackQueryData.equals(_button->btnName) && _button->argCallback !=
nullptr){
80 _button->argCallback(msg);
88 return m_buttonsCounter;
98 StaticJsonDocument<BUFFER_MEDIUM> doc;
99 deserializeJson(doc, m_json);
102 serializeJsonPretty(doc, serialized);
bool addButton(const char *text, const char *command, InlineKeyboardButtonType buttonType, CallbackType onClick=nullptr)
String getJSON(void) const
String getJSONPretty(void) const