首页 > 解决方案 > 我如何从 Telegram Bot 获取用户 ID

问题描述

我想在用户与我的机器人聊天时从用户那里获取用户 ID 和聊天 ID,因为我需要该 ID 来向 Sql 发送查询并注册该用户,但我不知道如何获取用户 ID :(

$data = file_get_contents("php://input");
$update = json_decode($data,true);

$message = $update["message"];
$text = $message["text"];
$cid = $update["message"]["from"]["id"];
$from = $message["from"];
$username = $from["username"];
$nome = $from["first_name"];
$cognome = $form["last_name"];

$cbid = $update["callback_query"]["from"]["id"];
$cbdata = $update["callback_query"]["data"];
$chat_id = $message->chat->id;
$user_id = $message->from->id;
$user = $message->from->username;

此代码用于将 UserID 和 ChatID 发送到聊天

if($text == "Datos"){
$but = array(array(array("text" => "UserID", "callback_data" => "Info"),),);
inlineKeyboard($but, $cid, "Clicca uno di questi due pulsanti \nper andare su google o su facebook!");
}

if(callback($update)){
    if($cbdata == "Info"){
    send($cbid, "estos son los datos: $probando $user $userid $probando2");
    }
}

标签: phpjsonbotstelegram

解决方案


这就是我获取 userid 或 chat_id 的方式,我不太确定,但现在我需要该信息用于代码的另一部分,但是当我再次调用时$welcomemessage,userid 的值是空的。我应该怎么办?

$userid = $message["from"]["id"];

$welcomemessage = "Este es tu id: $userid";

if ($text == '/hope') {
    $welcomemessage;

    // Send the generated message back to the Telegram user
    file_get_contents($website."/sendmessage?chat_id=".$chatId."&text=".$welcomemessage);
}

推荐阅读