如何区分“消息"更新和“回调查询"更新?(电报机器人 API) [英] How can I differentiate between a 'Message' update and a 'Callback Query' update? (Telegram Bot API)

查看:24
本文介绍了如何区分“消息"更新和“回调查询"更新?(电报机器人 API)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

对不起,如果我的问题太乱了,我是新来的,所以,欢迎任何建议.

Sorry if my question gets too messy, I'm new here, so, any advice is welcome.

如何区分消息"更新和回调查询"更新?我已经设法制作了一个内联键盘,但是当我使用它时,机器人就挂了,他什么都不回复.我做了一些研究,发现 这个问题,帮助我理解了这个问题,但除此之外别无他法.

How can I differentiate between a 'Message' update and a 'Callback Query' update? I've managed to make an inline keyboard, but when I use it, the bot just hangs, he doesn't reply anything. I did a little bit of research and found this question, which helped me understand the problem, but not much else.

我的机器人现在正在使用这样的东西:

My bot uses something like this right now:

// 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 */
}

所以,这段代码可以处理消息,但不能处理回调查询.如果我想处理它们,我可以使用这样的方法(基于另一个问题的答案):

So, this code can handle Messages, but not CallbackQueries. If I wantew to handle them, I could use something like this (based on the other question's answer):

$callback_query = $update["callback_query"]
/* same as above */

但是我如何检查它是消息还是回调查询?

But how can I check whether it is a message or a callback query?

推荐答案

if (($update['message']) != null) {

} else if ($update['callback_query'] != Null) {

根据电报文档:

至多一个可选参数可以出现在任何给定的更新.

At most one of the optional parameters can be present in any given update.

所以你只需要检查其中哪一个不是 Null.

so you just need to check which one of them is not Null.

这篇关于如何区分“消息"更新和“回调查询"更新?(电报机器人 API)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆