特定のチャネルのすべての管理者、ボットのすべてのマネージャー、またはボットがアクセスできるすべてのチャネルを一覧表示するマネージャー ボットを作成しています ...
だから私はデータベースを作成し、ボットから正常に接続しました
私がやろうとしていることは次のとおりです。つまり、私はボットのマネージャーなので、ボットの「パネル」を送信すると、チャネル、管理者、その他の設定が表示されます
管理者をクリックすると、ボットがデータベースの管理者テーブルを検索し、データベースの各ユーザー名に対してボタンを作成します
つまり、テーブルに5人の管理者がいます..ボットに5つの異なるボタン(「テキスト」=管理者[「ユーザー名」])を作成させたいのですが、ボタンに触れると、単に管理者の情報が表示されます.....
では、どうすればボタンを作成できますか??
<?php
define ('API_KEY','MY_BOT_TOKEN');
//----######------
function makereq($method,$datas=[]){
$url = "https://api.telegram.org/bot".API_KEY."/".$method;
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_POSTFIELDS,http_build_query($datas));
$res = curl_exec($ch);
if(curl_error($ch)){
var_dump(curl_error($ch));
}else{
return json_decode($res);
}
}
//---------
$update = json_decode(file_get_contents('php://input'));
var_dump($update);
//=========
$chat_id = $update->message->chat->id;
$message_id = $update->message->message_id;
$from_id = $update->message->from->id;
$name = $update->message->from->first_name;
$contact = $update->message->contact;
$cnumber = $update->message->contact->phone_number;
$cname = $update->message->contact->first_name;
$photo = $update->message->photo;
$video = $update->message->video;
$sticker = $update->message->sticker;
$file = $update->message->document;
$music = $update->message->audio;
$voice = $update->message->voice;
$forward = $update->message->forward_from;
$conn = mysqli_connect("localhost","id2056593_root","123456","id2056593_botdb");
$username = $update->message->from->username;
$textmessage = isset($update->message->text)?$update->message->text:'';
$reply = $update->message->reply_to_message->forward_from->id;
$stickerid = $update->message->reply_to_message->sticker->file_id;
//-----------
if($textmessage == "panel" || $textmessage == "Panel"){
var_dump(makereq('sendMessage',[
'chat_id'=>$update->message->chat->id,
'text'=>"Welcome to the pannel",
'parse_mode'=>'MarkDown',
'reply_markup'=>json_encode([
'keyboard'=>[
[
['text'=>"Channels"],['text'=>"Admins"]
],
[
['text'=>"More Settings"]
]
],
'resize_keyboard'=>true
])
]));
}elseif($textmessage == "Channels"){
$sql = "SELECT * FROM channels";
$result = mysqli_query($conn,$sql);
$text = "channel id :\n";
while ($row = mysqli_fetch_assoc($result)) {
$keyboard =json_encode([
'keyboard'=>[
[
['text'=>"$row[username]"]
]]]);
}
makereq('sendMessage',[
'chat_id'=>$update->message->chat->id,
'text'=>"Pick up one channel from above",
'reply_markup'=>$keyboard]
);
}elseif($textmessage == "Admins"|| $textmessage =="admins"){
$sql = "SELECT * FROM admin";
$result = mysqli_query($conn,$sql);
while ($row = mysqli_fetch_assoc($result)) {
$keyboard =json_encode([
'keyboard'=>[
[
['text'=>"$row[username]"]
]]]);
}
makereq('sendMessage',[
'chat_id'=>$update->message->chat->id,
'text'=>"Pick up one admin",
'reply_markup'=>$keyboard]
);
}
注:私のコードは、1つの管理者または1つのチャネルを表示するだけです
PS : Telegram-bot-php は使用していません