对不起,如果我的问题太乱了,我是新来的,所以,欢迎任何建议。
如何区分“消息”更新和“回调查询”更新? 我已经设法制作一个内联键盘,但是当我使用它时,机器人只是挂起,他没有回复任何东西。我做了一些研究,找到this question,这帮助我理解了这个问题,但没有其他的。
我的机器人现在使用这样的东西:
// read incoming info and grab the chatID
$content = file_get_contents("php://input");
$update = json_decode($content, true);
$chatID = $update["message"]["chat"]["id"];
switch($update["message"]["text"]){
/* insert magic here */
}
因此,此代码可以处理消息,但不能处理CallbackQueries。如果我想要处理它们,我可以使用这样的东西(基于另一个问题的答案):
$callback_query = $update["callback_query"]
/* same as above */
但是如何检查它是消息还是回调查询?
答案 0 :(得分:1)
if (($update['message']) != null) {
} else if ($update['callback_query'] != Null) {
根据电报文件:
在任何给定的参数中,最多可以存在一个可选参数 更新
所以你只需要检查它们中的哪一个不是空的。
答案 1 :(得分:0)
您可以简单地检查CallbackQuery是否为null。 请参阅Telegram文档:
<强> CallbackQuery 强>
此对象表示来自回调的传入回调查询 内联键盘中的按钮。如果是发起查询的按钮 附加到机器人发送的消息,字段消息将是 当下。如果按钮附加到通过机器人发送的消息(在 内联模式),字段inline_message_id将出现。完全一个 字段数据或game_short_name将出现。