никак не могу разобраться с callbackquery
в telegram bot api. одним из требований является id
- Уникальный идентификатор запроса. откуда его взять?
$callbackquery=array(array("id"=>"","from"=>"$user","data"=>"$inbreply2"));
$inlinekeyb=array(array(array("text"=>"принять","callback_data"=>"$callbackquery")));
$inlineresp=array("inline_keyboard"=>$inlinekeyb);
$inbreply=json_encode($inlineresp);
Объект вида CallbackQuery возвращается боту (например при использовании метода getUpdates) после того как пользователь нажал CallbackButton. При этом в объекте в поле data
будет то, что Вы указали в параметре callback_data
в массиве описывающем InlineKeyboardButton
Например в reply_markup мы передаем такой массив:
$arMarkup = [
'inline_keyboard' => [
[
['text' => 'test_1','callback_data' => '1'],
['text' => 'test_2','callback_data' => '2'],
]
]
];
//не забываем преобразовать в JSON
$replyMarkup = json_encode($arMarkup);
Пользователь в клиенте нажимает кнопку с надписью test_1
и затем ответ с CallbackQuery
отправляется на веб-хук или мы сами должны получить его через метод getUpdates
Например мы получаем сообщения через getUpdates
, тогда вызвав метод, мы получаем JSON вида:
"{"ok":true,"result":
[
{
"update_id":xxxxxxxxxx,
"callback_query":
{
"id":"xxxxxxxxxxx",
"from":
{
"id":xxxxxxxxx,
"first_name":"xxxxxxx",
"last_name":"xxxxxxx",
"username":"xxxxxxxxx",
"language_code":"ru"
},
"message":
{
"message_id":xxxx,
"from":
{
"id":xxxxxxxxx,
"first_name":"xxxxxxxx",
"username":"xxxxxxx"
},
"chat":
{
"id":xxxxxxxx,
"first_name":"xxxxxxx",
"last_name":"xxxxxxxx",
"username":"xxxxxxx",
"type":"private"
},
"date":1499854111,
"text":"test"
},
"chat_instance":"xxxxxxxxxxxx",
"data":"1"
}
}
]
}"
Далее можно обработать этот CallbackQuery
и например отправить пользователю сообщение в зависимости от того что содержится в поле data
Совсем простой пример:
<?php
$bot = new TelegramBot();
$arUpdates = $bot->getUpdates();
if (!empty($arUpdates['result'])) {
foreach ($arUpdates['result'] as $arResult) {
if (array_key_exists('callback_query',$arResult)) {
$userId = $arResult['callback_query']['from']['id'];
if ($arResult['callback_query']['data'] == 1) {
$bot->sendMessage($userId, 'Its ok!');
} else {
$bot->sendMessage($userId, 'Its not ok!');
}
}
}
}
?>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Имеется код который должен авторизировать пользователяАвторизация держится на сессиях разумеется
Логика следующая: у меня есть форма ввода данных состоящая из
Как лучше устроить архитектуру приложения на базе yii2 и админкой на angular2? Пока что есть приложение yii2-basic с самим сайтом, модуль yii2 api (rest-api)