【问题标题】:Telegram Bot code to whitelist a member of private groupTelegram Bot 代码将私人组的成员列入白名单
【发布时间】:2019-01-16 16:00:38
【问题描述】:

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

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

也许将白名单存储在文件中并在云服务器中运行机器人?有一个 API 可以踢出成员 https://core.telegram.org/bots/api#kickchatmember,但我不知道触发添加成员事件的 webhook。

有人愿意为此编写一个电报机器人脚本吗?很抱歉给您带来不便。

【问题讨论】:

    标签: scripting telegram telegram-bot


    【解决方案1】:

    试试这个

    <?php
    $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]);
        }
    }
    

    【讨论】:

    • 谢谢。一点点编辑,这完全符合我的需要:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-11
    • 2021-08-08
    • 2018-12-18
    • 2021-06-20
    • 2016-03-06
    • 1970-01-01
    • 2021-08-07
    相关资源
    最近更新 更多