V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
U2FsdGVkX1
V2EX  ›  分享创造

发一个 Telegram Bot 的框架

  •  1
     
  •   U2FsdGVkX1 ·
    U2FsdGVkX1 · 2016-12-25 10:07:45 +08:00 · 14537 次点击
    这是一个创建于 2890 天前的主题,其中的信息可能已经有所发展或是发生改变。

    诞生

    😂最开始本来是要满足一些需求,后来越写越多干脆发布算了(

    特点

    这是一个全新的 Bot 框架,该版本拥有一个前端,使得你不需要再登录数据库启用 /禁用每个插件,程序中的错误报告功能,可让 Bot 调试拥有极高的效率~~

    新建插件和编辑插件允许你能够在线的编辑某个插件,甚至通过移动设备编辑

    注意

    1. 这个框架本身没有什么用,因为是以插件为中心的(就像 CQ 、 MPQ 那种差不多),也就是收到一条消息之后会通知每个插件,插件自身做出对应响应
    2. 插件开发文档正在编写……目前你可以参考一些预置插件了解怎么开发插件
    3. 已知在设置页面快速点击每个按钮就会出现无法解除禁用的 bug

    使用方法

    因为某些原因(对没错就是懒得写),所以安装页面就没有写……于是第一次使用的话需要手动配置几个东西

    1. 打开 Config/Config.php ,把数据库信息填入(分别为数据库地址、数据库名、数据库用户名、数据库密码、是否长连接)
    2. 打开 table.sql ,复制全部内容到 MySQL 执行
    3. 打开你的网站,输入默认密码( admin )
    4. 在设置页面配置 Bot Token 、 Bot Username

    最后

    演示站: https://test.plus1day.xyz

    Gayhub : https://github.com/U2FsdGVkX1/Tbo

    PS :演示站默认密码为 admin ……更改密码功能并没有禁用,我对 v2 的人还是有信任的,同时也请不要随意更改密码

    🌚求订阅收藏点赞打赏丢硬币丢香蕉给我

    第 1 条附言  ·  2016-12-25 15:48:04 +08:00
    各位不要只收藏不回复啊🌝
    第 2 条附言  ·  2017-05-27 12:40:19 +08:00
    PHP 版本的 Tbo 已经基本完善,之后大概不会有重要更新了
    第 3 条附言  ·  2017-07-03 12:56:11 +08:00
    演示站已暂时下线
    27 条回复    2018-02-25 18:37:37 +08:00
    U2FsdGVkX1
        1
    U2FsdGVkX1  
    OP
       2016-12-25 10:28:08 +08:00
    (话说不要只收藏不回复喂
    badcode
        2
    badcode  
       2016-12-25 10:42:42 +08:00   ❤️ 1
    1.在客户端进行左边搜索框上搜索“ BotFather ”,这是一个机器人他爹。

    2.点 “/newbot ”,根据提示请输入一个机器人的名字,创建的机器人就显示这个名字

    接着根据出现的提示再次输入用户名,这个用名字会在用户信息里看到

    出现
    Done! Congratulations on your new bot. You will find it at telegram.me/用户名. You can now add a description, about section and profile picture for your bot, see /help for a list of commands. By the way, when you've finished creating your cool bot, ping our Bot Support if you want a better username for it. Just make sure the bot is fully operational before you do this.

    Use this token to access the HTTP API:

    0000000:AA00000000
    For a description of the Bot API, see this page: https://core.telegram.org/bots/api

    说明创建成功了

    3.接着就是获取 ID(chat_id 或群组 ID)

    方法一:
    再次在左边搜索框上搜索“ get id ”,这是一个获取 Chat ID 机器人。
    在聊天输入框里输入“/my_id ”即可获取自己的 chat_id 和 group chat id
    ID 格式有区别
    chat_id(22222222)
    group chat id(-12345456)

    方法二:
    重点>>>先给自己或在群里发一条信息,然后浏览器上输入下面的链接

    https://api.telegram.org/bot0000000:AA00000000/getupdates 返回的是 409 ?
    group chat id 为一组带"-数字",例如-12345456
    chat_id 为一组不带"-数字",例如 22222222

    机械人给自己发信息:hi

    https://api.telegram.org/bot0000000:AA00000000/sendmessage?chat_id=22222222&text=hi

    0000000:AA00000000 换成你的 Token
    22222222 换为你的 chat_id
    hi 换为你要发的信息
    机器人给群发信息: hi

    https://api.telegram.org/bot0000000:AA000000000/sendmessage?chat_id=-12345456&text=hi

    -12345456 换成你的 group chat id
    chat_id 是唯一的



    之前要给群推送消息,搜的一点东西,不知道有没有用
    KenGe
        3
    KenGe  
       2016-12-25 11:04:13 +08:00
    密码错误 囧
    U2FsdGVkX1
        4
    U2FsdGVkX1  
    OP
       2016-12-25 11:06:18 +08:00
    @KenGe 已更改密码并关闭修改密码
    tSQghkfhTtQt9mtd
        5
    tSQghkfhTtQt9mtd  
       2016-12-25 17:52:51 +08:00
    域名暴力膜
    U2FsdGVkX1
        6
    U2FsdGVkX1  
    OP
       2016-12-25 18:57:19 +08:00
    @liwanglin12 🌚蛤?
    onenightintokyo
        7
    onenightintokyo  
       2016-12-25 19:32:56 +08:00
    请问为什么我打开自己部署的网站,登陆时填完密码登陆没有任何反应
    U2FsdGVkX1
        8
    U2FsdGVkX1  
    OP
       2016-12-25 20:40:41 +08:00
    @onenightintokyo 执行 sql 均全部正确没有错误?确定服务器字词 pdo ?可以说一下你的域名吗?我明天看一看
    U2FsdGVkX1
        9
    U2FsdGVkX1  
    OP
       2016-12-25 20:42:03 +08:00
    @onenightintokyo 如果你不愿意发域名的话,你也可以打开 chrome 的开发人员工具的 network 标签下,看一看点击登录后发送的 ajax 结果是什么
    onenightintokyo
        10
    onenightintokyo  
       2016-12-25 20:45:09 +08:00 via Android
    没域名。。。
    onenightintokyo
        11
    onenightintokyo  
       2016-12-25 20:46:56 +08:00 via Android
    感觉可能是我没配好,我再试试吧,谢谢了
    U2FsdGVkX1
        12
    U2FsdGVkX1  
    OP
       2016-12-25 20:51:19 +08:00
    @onenightintokyo 没有域名的话可以使用我说的第二种方法(切换 network 标签页,看 ajax 结果)
    onenightintokyo
        13
    onenightintokyo  
       2016-12-25 20:55:28 +08:00 via Android
    谢谢啦
    ins
        14
    ins  
       2016-12-25 21:17:38 +08:00
    mark...
    kmahyyg
        15
    kmahyyg  
       2016-12-25 22:39:14 +08:00 via Android
    有些啥子功能?我目前是用 bash 后端+php 前端+webhook 弄了个 vps 监控。。。。
    haitang
        16
    haitang  
       2016-12-26 00:17:54 +08:00
    试用了下,很棒,已 star
    U2FsdGVkX1
        17
    U2FsdGVkX1  
    OP
       2016-12-26 06:52:54 +08:00
    @kmahyyg
    可以在线编辑、启用、停用插件
    而且重新封装 Telegram API 的函数,使得开发变得更简单
    而且还有授权登录功能,不必一次次输入密码
    llhh
        18
    llhh  
       2016-12-26 09:37:19 +08:00
    我收藏了,有时间试试。
    onenightintokyo
        19
    onenightintokyo  
       2016-12-26 20:27:52 +08:00 via Android
    昨天是我犯傻了,今天发现是 php 版本的问题(O_O)
    U2FsdGVkX1
        20
    U2FsdGVkX1  
    OP
       2016-12-27 10:20:21 +08:00
    @onenightintokyo 建议 php 环境为 >= 5.4
    wm5d8b
        21
    wm5d8b  
       2016-12-27 11:10:40 +08:00   ❤️ 1
    最近看到 https://github.com/blueset/ehForwarderBot ,可以收发微信, lz 或许可以参考一下?
    U2FsdGVkX1
        22
    U2FsdGVkX1  
    OP
       2016-12-27 11:49:19 +08:00   ❤️ 1
    @wm5d8b 蟹蟹,之后我做一个类似的插件吧
    youranus
        23
    youranus  
       2016-12-27 13:22:43 +08:00 via iPhone
    好东西
    abmin521
        24
    abmin521  
       2016-12-28 22:16:07 +08:00
    楼主的用户名不是随机生产的吗
    U2FsdGVkX1
        25
    U2FsdGVkX1  
    OP
       2016-12-29 06:41:21 +08:00
    @abmin521 AES 加密
    chimojiacai2
        26
    chimojiacai2  
       2018-02-24 21:28:42 +08:00
    hi,里面的 curl 方法(fetch 方法),请求 telegram 的 api 放法,返回 false,不知道为啥,
    但是请求别的 url 是可以返回到数据的
    U2FsdGVkX1
        27
    U2FsdGVkX1  
    OP
       2018-02-25 18:37:37 +08:00
    @chimojiacai2 你可以使用 callMethod 方法的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2856 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 09:12 · PVG 17:12 · LAX 01:12 · JFK 04:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.