Telegram bot Referal с Php с помощью команды / start - PullRequest
0 голосов
/ 26 июня 2019

Я пытаюсь получить баллы, выделенные ма пользователя на основании количества рефералов, используя бот-телеграмму, передавая полезную нагрузку команде / start, откуда я могу ее отследить и узнать, кто направлял людей к боту

Я попытался выполнить процедуру документирования и смог установить команду, но я не нашел способа получить полезную нагрузку

  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 голосов
/ 28 июня 2019

Telegram отправляет полезную нагрузку внутри содержимого сообщения вашему боту

$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 = "";
}
0 голосов
/ 26 июня 2019

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

Вы можете получить полезную нагрузку в обычном текстовом сообщении, которое начинается с "/ start"

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