PHP Bot Telegram Gruppe hinzufügen Button

tropenberta

Newbie
Registriert
Dez. 2020
Beiträge
6
Ich möchte mit PHP einen Button erstellen mit dem der Nutzer einfach den Bot zu einer Gruppe hinzufügen kann in der er der Admin ist. Hab das bei einem anderen Bot gesehen (siehe Bild).

pic1.jpg


Ich versuche schon ewig rum, finde aber leider keinen Ansatz für so eine Function. Nachrichten, Photos verarbeiten, Inlinekeyboard, alles kein Problem. Hier mein bisheriger Code:

PHP:
<?php
$json_raw = file_get_contents("php://input");

$handle = fopen("bot.log", "a+");
fwrite($handle, $json_raw . "\n\n");
fclose($handle);

$json_out = json_decode($json_raw);

include 'bot_id.php';
include 'includesBot/controllerBot.php';

$command_arr = explode(" ", $json_out->message->text);

if (isset($json_out->message->from)) {
    $username = $json_out->message->from->username;

    if ($username == '') {
         $username = $json_out->message->from->first_name;
         $userid = $json_out->message->from->id;
    } else {
         $userid = $json_out->message->from->id;
    }
}

if (!empty($json_out->message->text)) {
    if ($command_arr[0] == "/start") {

        $arr1 = array('text' => "Einer Gruppe hinzufügen", 'callback_data' => "/newgroup");
        $arr2 = array('text' => "Bot beenden", 'callback_data' => "/stopbot");
        $keyboard = array(array($arr1), array($arr2));

        sendPhoto($bot_id, $json_out->message->chat->id, "HIER STEHT BILD URL");
        sendMessage($bot_id, $json_out->message->chat->id, "Vielen Dank " . $username . " dass Du Dich für meinen Bot entschieden hast. Deine user_id ist: ".$userid."\n\n");
        sendInlineKeyboard($bot_id, $json_out->message->chat->id, "Um mit dem Bot zu arbeiten, musst Du ihn zuerst einer Gruppe hinzufügen. Du musst der Inhaber der Gruppe sein, um dies machen zu können\n", $keyboard);
    }
}

if (!empty($json_out->callback_query->data)) {
    include 'callback_process.php';
}
?>

Funktioniert alles super. jetzt brauche ich einen Ansatz um sowas wie auf dem Bild realisieren zu können Dankeschön
 
Hab eine Lösung gefunden um einen Button mit gewollter Funktion zu bekommen:
Code:
function groupButt($bot_token, $chatID, $text, $keyboard) {
    $keyboard = array(
        "inline_keyboard" => $keyboard
    );

    $markup = json_encode($keyboard);

    $url = "https://api.telegram.org/bot".$bot_token."/sendMessage";
    $data = array(
        'chat_id' => $chatID,
        'text' => $text,
        'reply_markup' => $markup,
        'parse_mode' => 'HTML'
    );

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, count($data));
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    $response = curl_exec($ch);
    curl_close($ch);

    return $response;
}

Auslösen mit:
Code:
$linkButton = array(
    array(
        "text" => "Gruppe hinzufügen",
        "url" => "https://t.me/DerNameDesBots?startgroup=start"
    )
);

$keyboard2 = array($linkButton);

$text = "Klicke auf die Schaltfläche, um der Gruppe beizutreten:";
groupButt($bot_token, $chatID, $text, $keyboard2);

Bei der URL bei DerNameDesBots einfach euren Botnamen eingeben und es funzt.

Wenn jemand einen eleganteren Weg kennt gerne posten

Liebe Grüße
 
Zurück
Oben