考虑以下顺序:
Message
发送InlineKeyboardMarkup
User
InlineKeyboardMarkup
到特定CallbackQuery
message
的其中一个按钮时,机器人会收到inline keyboard InlineKeyboardMarkup
包含一个reply_markup
对象,代表原始邮件,该邮件已在步骤1中发送,但据我在API文档中看到,CallbackQuery不包含任何内容有关InlineKeyboardMarkup
或Message
。那么有可能获得最初发送的function MYMODULE_form_alter(&$form, &$form_state, $form_id) {
global $user;
if ($form_id == 'TYPE_node_form') {
// or if (strpos($form_id, '_node_form') !== false) {
$node = $form_state['build_info']['args'][0] ;
if (! check_if_user_can_edit($user, $node)) {
drupal_set_message(t('Restricted'), 'error');
drupal_goto('<front>');
}
}
}
的{{1}}吗?
如果无法获得它,在这种情况下是否有任何解决方法?
答案 0 :(得分:1)
目前无法获取已发送邮件的InlineKeyboardMarkup
。
您最接近此解决方案的方法是传递callback_data
中的相关数据,然后使用此信息构建新的InlineKeyboardMarkup
。
答案 1 :(得分:0)
最近向reply_markup
对象Telegram Bot API developers added InlineKeyboardMarkup
类型的新字段Message
。
现在,您可以像以前这样发送以前发送过的键盘:Update.CallbackQuery.Message.ReplyMarkup