使用/ start命令与Php一起使用Telegram bot Referal

时间:2019-06-26 14:27:52

标签: php bots telegram

我正在尝试使用电报漫游器,通过将有效负载传递到/ start命令,从那里我可以跟踪它,并知道谁一直在将人们引向该漫游器,从而根据引荐数量获取分配给主要用户的积分< / p>

我尝试遵循文档编制过程,并且能够设置命令,但是我看不到获取有效载荷的方法

  ini_set('error_reporting', E_ALL);
    $token="870645666:AAHrjEF006uje1SpG0dFJRFnmfNIZHbGxdM";
    $website ="https://api.telegram.org/bot".$token;

    $update =file_get_contents("php://input");

    $update =json_decode($update, TRUE);

    $chatid =$update["message"]["chat"]["id"];
    $message =$update["message"]["text"];
    $refid=$update["message"]["text"]["payload"];


    $ref=mysqli_fetch_assoc(mysqli_query($connect, "SELECT * FROM 
          bot where refid='$refid'"));

 sendMessage($chatid, "You were referred by".$ref['name'];

    function sendMessage($chatid, $message){
            $url =$website."/sendMessage? 
              chat_id=".$chatid."&text=".urldecode($message);
            file_get_contents($url);

                                    }

当我尝试访问有效负载时,没有任何输出 我已经尝试过Google,但是我找不到使用php提取有效负载的方法。任何帮助将不胜感激

2 个答案:

答案 0 :(得分:0)

https://core.telegram.org/bots#deep-linking

您可以通过以“ / start”开头的普通短信接收有效载荷

$text = '/start PAYLOAD';
if(stripos($text, '/start ') === 0)
{
    $payload = str_replace('/start ', '', $text);
}

答案 1 :(得分:0)

电报将消息内容中的有效载荷发送到您的机器人

$message =$update["message"]["text"];
// extract payload from message text
$refid=substr($message, strlen('/start'));

// check is it really first message to start the bot
if($update["message"]["message_id"] != 1 || stripos($message, "/start ") != 0){
    // $refid = "";
}