tg-bot小记

生成bot

私聊@BotFather,输入/newbot,按顺序输入bot的名称和用户名,就会返回机器人的token。

请求机器人api

机器人api文档

所有的请求api格式都是https://api.telegram.org/bot<Token>/<Method Name>的格式。

如:https://api.telegram.org/bot123abc/getMe

所有请求都支持httpspostget。请求类型可选四种:

  • 字符串拼接的方式:

    如:https://api.telegram.org/bot123abc/sendMessage?chat_id=123&text=hello

  • application/json

    通过json格式发送请求,可读性较强

  • application/x-www-form-urlencoded

  • multipart/form-data

    上传文件只能选择这种方式。

返回值是以json格式数据,包含一个ok以及result,如果请求错误,则会通过descripterror_coderetry_after返回错误信息。

使用node.js编写bot

使用npm包npm install --save node-telegram-bot-api

文档地址:https://github.com/yagop/node-telegram-bot-api

注意需要填写正确的机器人token

使用heroku构建测试环境

heroku官网,先去注册个账号

项目流程:

  • 创建本地项目文件夹

  • 初始化npm包管理工具

  • package.json文件新建一个事件"start":"node index.js"指向项目入口js文件

  • 在入口js文件添加一个监听端口事件,目的是让heroku能存活时间长一点(付费用户应该可以无视)

  • 初始化git仓库并进行一次提交

  • 建立heroku app :heroku create

  • 执行部署命令:git push heroku master

在部署后,如果想查看实时日志,可执行命令heroku logs --tail获取。

若需要停止项目运行,可输入heroku ps:scale web=0

之后你还想再启动的话,需要输入heroku ps:scale web=1

更多信息参考heroku官方文档

在heroku中使用bable转换es6语法

安装bable

创建.babelrc,文件内容:

然后在项目里新建src文件夹,将项目文件都放进去。

更新package.jsonscripts命令

这时,理论上就能运行我们带有es6语法的js文件了。但是想要在heroku上运行你的项目,还需要执行这个命令:heroku config:set NPM_CONFIG_PRODUCTION=false。因为heroku默认是不会安装npm开发阶段的包,然而我们的bable-cli是正好是属于开发阶段的包,所以要改下配置。这时,即可正常运行项目了。

Last updated

Was this helpful?