如何从零开始搭建电报机器人

使用电报机器人api开发一款游戏机器人

Posted by 队长游戏 on July 10, 2024

想要搭建一款自己的红包扫雷机器人,但是不知道搭建的流程是什么?没关系,本文将带领我们一步一步从创建telegram bot 到 开发telegram 红包机器人,读完本文,您将会了解搭建一个红包扫雷机器人的基本流程。

关键功能一览: :heavy_check_mark: 创建telegram 机器人,获取token。

:heavy_check_mark: USDT红包发放:按金额、雷的尾数自定义红包,机器人自动发布抢红包消息。

:heavy_check_mark: 玩家抢红包:按顺序响应用户抢红包的点击事件,随机分配用户红包额度。

:heavy_check_mark: 抢红包记录:完整记录每次抢红包时间顺序,保证公平公正。

:heavy_check_mark: 中奖随机:后台自动收集抢红包记录,智能算法随机抽取中奖者。

:heavy_check_mark: USDT领奖:自动发放USDT红包,自动计算发包者盈利、税收。

:heavy_check_mark: USDT充值、提币:USDT充值自动到账,USDT提币审核后发放。

telegram 机器人创建流程

  • 在telegram 中 搜索 @BotFather
  • 打开和BotFather的聊天对话,点击start
  • 输入或者点击 /newbot 命令。如图所示,红色标记的为创建新机器人命令: create new telegram bot
  • 输入 /newbot 命令后,BotFather 会提示 “Alright, a new bot. How are we going to call it? Please choose a name for your bot.” 意思是:我们需要给这个机器人起一个昵称,可以是汉语,可以是英文,以后也可以修改,此处为了演示,我给机器人起的名字是“澳洲10飞单”,代表是用来做澳洲10飞单的机器人。如图所示: create new nikename
  • 输入昵称后,BotFather会提示“Good. Now let’s choose a username for your bot. It must end in bot. Like this, for example: TetrisBot or tetris_bot.” 意思是 给新创建的bot起一个名字,也就是username,必须以”bot”结尾,比如此时我们输入“au10GameBot”,注意:username不能重名,如果已经有人使用过,必须另外选一个,username已经被占用会提示“Sorry, this username is already taken. Please try something different.”。如图所示: create new bot username
  • 输入合格的用户名后,机器人创建成功,此时BotFather会提示机器人“au10GameBot”创建成功,http api toke是 xxxx:yyyyyy,如上图红色标记所示,点击复制在开发代码的时候使用。

开发红包扫雷机器人

开发语言、框架的选择

  • 易用性:开发telegram游戏机器人,主要侧重于游戏逻辑,要选择易于使用的语言、框架,尽量减少问题的产生,缩短交付时间
  • 稳定性:telegram 红包扫雷机器人是使用USDT来游戏的产品,因此要保证产品的稳定性,减少不可控的bug产生。
  • 基于以上要求,我们选择易用性、安全性、稳定性较平衡的python语言作为开发语言,python语言的telegram bot 开发库中选择功能较为全面的、api较为现代的 pyrogram 库作为基础开发库。

识别群内用户发送命令

  • 说明:用户在群内发送 “10-8” 表示发送10U的红包,中雷数字为:8. pyrogram可以使用filter来自动监听群消息,方法是 filters.group & filters.text.意思是:监听群内、文字消息
  • 代码如下:
     @app.on_message(filters.group & filters.text)
    async def my_handler_gamecomm(client, message):
     if (mat := re.match(r'^(\d+)-(\d+)', message.text, re.M | re.I)):
         return await sendLuckyMessage(client, message, mat)
    

    sendLuckyMessage 的实现逻辑为请求服务器判断用户是否有足够USDT额度,然后公布到群内。

识别用户点击抢红包的动作

  • pyrogram可以使用on_callback_query() 来响应用户点击的事件,通过telegram 传入的参数来确定用户点击的是什么按钮
    @app.on_callback_query()
    async def answer(client, callback_query):
     message = callback_query.message
     if callback_query.data.startswith("openlucky_"):
         await qiang_action(client, callback_query)
    
  • 在 qiang_action函数中来处理用户抢红包的逻辑,包括: 1.判断用户是否足够赔付,比如发的红包是10USDT,如果中雷需要赔付18 USDT 2.随机用户抢到的额度,给用户增加余额 3.群内通知红包是否抢完

    USDT 自动充值到账

  • USDT充值在机器人私聊时发送收USDT地址
  • 自动监听到款上分 在pyrogram中,使用filters.private来监听私聊的信息,代码如下:
    @app.on_message(filters.private & filters.text)
    async def my_handler(client, message):
      elif message.text.lower() in ["充值", "冲值", "cz", "chz", "chongzhi"]:
          return await showUSDTAddress(client, message)
    

    总结

    以上介绍了telegram bot(电报游戏机器人) 的开发流程和开发电报红包扫雷机器人的代码实现说明,电报机器人 api token的申请流程说明。 根据此流程可以申请一个新的电报机器人用来搭建到群内做红包扫雷机器人、骰子机器人、pc28机器人、以及最近比较流行的TON 游戏机器人。

更多内容展示请关注频道: 队长游戏官方频道

联系官方客服可以查看更多游戏试玩:队长游戏产品列表