电报Bot代码将私有组成员列入白名单

时间:2018-08-09 08:55:32

标签: scripting telegram telegram-bot

我在Telegram中创建了一个私人超级组,只希望允许某些电报用户ID或电话号码加入。

该机器人白名单文件中没有的任何未知电报用户ID /号码将被自动踢出。

也许将白名单存储在文件中并在Cloud Server中运行bot?有一个踢成员https://core.telegram.org/bots/api#kickchatmember的API,但我不知道Webhook会触发添加成员事件。

有人为此写电报机器人脚本吗?抱歉给您带来不便。

1 个答案:

答案 0 :(得分:1)

尝试

<?php
ob_start();
$API_KEY = 'token';
define('API_KEY',$API_KEY);
function bot($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,$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'));
$message = $update->message;
$text = $message->text;
$chat_id = $message->chat->id;
$from_id = $message->from->id;
$new_member = $message->new_chat_member->id;
$memberid = file_get_contents('whitelist.txt'); //put userid in whitelist.txt
$whitelist = explode("\n",$memberid);
if($new_member){
if(!in_array($chat_id,$whitelist)) {
bot('kickChatMember',[
'chat_id'=>$chat_id,
'user_id'=>$message->new_chat_member->id]);}}