目录

第一步

第二步

第三步

第四步

第五步


第一步

登录Telegram,并找到@BotFather,使用/new bot指令,并按照指示为你的Bot取个昵称以及用户名(Bot的用户名必需以bot结尾)。此时BotFather会给你一个非常重要的东西——Bot token,注意保管好它!

通过BotFather中的命令,可以为你的机器人设置头像、命令、描述等,就像下图。

第二步

此时你给机器人发消息,他是不会回你的,因为没有写后台代码支持他的运行。下面两个链接中定义了很多Bot API提供的方法,所有Bot都可以调用。https://core.telegram.org/bots/api和https://core.telegram.org/bots。

其实这时我们的Bot已经可以取得用户发的讯息了,我们先向Bot随便发点什么东西(当然此时它还不会回复),然后在浏览器中输入:https://api.telegram.org/bot(token)/getUpdates
(token)请换成上面或取的token。浏览器中就会显示我们和机器人的聊天内容,这里是通过Telegram Bot平台提供的getUpdates()方法来获得。

第三步

有两种互相排斥的方式来接收你的机器人的更新,一方面是getUpdates方法,另一方面是webhook。传入的更新将存储在服务器上,直到机器人以任何一种方式接收它们,但是它们的保存时间不会超过24小时。这种方法虽然可以或取讯息,但是要做到Bot随时使用,频繁调用getUpdates方法会非常浪费资源。因此我们使用另一种方法设置Webhook,即向 Telegram 设定一组 callback url,只要有用户向你的Bot发送讯息,Telegram 就会把用户讯息连同元数据 传送到你设定的 url 。

Telegram要求callback url所在的服务器必需要有SSL证书,而我们目前并没有去搭建服务器。所以,打开浏览器,输入http://script.google.com 新建脚本。直接使用gs开发就可以啦,谷歌的服务器自然是有SSL证书的。关于Telegram Bot所支持的程序语言,虽然官方手册的案例上并没有gs,但我们打开GitHub,搜索telegram-bot-gscript,还是能找到案例的哦。如:

function doPost(e){var estringa = JSON.parse(e.postData.contents);var payload = identificar(estringa);var data = {"method": "post","payload": payload}UrlFetchApp.fetch("https://api.telegram.org/botYOUR-API-HERE/", data);}
function identificar(e){if (e.message.text){var mensaje = {"method": "sendMessage","chat_id": e.message.chat.id,"text": e.message.text,} }else if (e.message.sticker){var mensaje = {"method": "sendSticker","chat_id": e.message.chat.id,"sticker": e.message.sticker.file_id}}else if (e.message.photo){var array = e.message.photo;var text = array[1];var mensaje = {"method": "sendPhoto","chat_id": e.message.chat.id,"photo": text.file_id}}else {var mensaje = {"method": "sendMessage","chat_id": e.message.chat.id,"text": "Try other stuff"}}return mensaje}

把案例中的代码复制到上面新建的脚本当中,保存并点击左上角的发布-部署为网络应用,把权限改为任何人甚至匿名,确定。就得到了具有SSL凭证的callback url。

第四步

打开浏览器,把上面或取的token和callback url放到下边网址对应的位置
https://api.telegram.org/bot(token)/setwebhook?url=callback url。随后浏览器便会返回:

这时,给机器人发消息就可以发现,机器人会返回相同的内容。

第五步

本地写运行Bot的脚本文件。下载编译器,如VSCode。首先安装node-telegram-bot-api库,命令行中输入npm install node-telegram-bot-api,同时输入npm install config。


我们开发的bot是怎么知道用户发送了哪些命令?

Telegram bot有两种获取用户发送命令的方式,一种是polling模式,也就是轮询。我们的bot需要每隔一段时间,就向Telegram服务器发送请求,询问最近用户发过来了哪些命令。这种方式的好处就是便于在本地调试,我们刚才的代码使用的就是这种模式。坏处就是每隔一段时间就要主动发送请求,即使最近可能没有任何用户发送命令。另外一种模式就是webhook,我们需要给bot设置一个webhook地址,比如说https://hentai.com/bot123。这样,每次当用户向bot输入命令时,Telegram就会把这次的命令转发到https://hentai.com/bot123,因此,我们需要在https://hentai.com/bot123部署我们的bot。这种模式的好处就是可以及时响应用户的命令,坏处就是本地调试麻烦,可能需要ngrock这种内网穿透工具。同时在线上部署时,我们还需要有自己的域名并且要支持https!!!

添加按钮、内联键盘



效果图如下:

发送漂亮的消息、粗体、斜体、表格、按钮

Telegram提供了两种解析模式,一种是Markdown和html,他们基本相同。可以设置回复的格式为Markdown,disable_web_page_preview :true,表示对于链接关闭提前预览模式。


下图是,对与上面定义的应用,加粗只对英文起作用。等宽字体很有用,可以用来编辑整齐的表格。

处理特定命令

回声机器人实现后,现在想要机器人能够处理特定的命令,该怎么办呢?可以在botFather中设置命令,之后在代码中写处理命令的逻辑。如下图,是代码处理特定命令。Body.message.text.indexOf(“/help”) === 0 这个判断条件表示,用户的输入是以/help 开头即可。注:如果用户输入的文本里面有空格,也没关系,telegram会自动解析处理。

下面是优化后的代码,去除冗余的代码。\n是换行,可以再消息显示中换行。当然也可以用switch,后面会介绍。

对于,其他语言,如python、java、php等可以到telegram 官网telegram 官网,查看更多的源代码,进行学习!

telegram 创建机器人相关推荐

  1. telegram创建机器人,接口调用机器人

    [开发云]年年都是折扣价,不用四处薅羊毛 文章目录 一.创建机器人 二.使用步骤 1.输入创建机器人消息/newbot 2.机器人命令列表 3.查看我的机器人 4.php接口调用机器人 一.创建机器人 ...

  2. telegram 创建机器人 bot 简介

    今天看到一个电报群里说 利用BOT来签到,很好奇就想学学,来吧 ! 创建一个BOT!!! 1.先搜索BotFather 我这里搜索到好几个没有一个可用的,输入/help 返回俄文错误信息. 后来在官网 ...

  3. Telegram之创建机器人

    1.Telegram创建机器人Bot 第一步: 登录Telegram,并找到@BotFather,使用/new bot指令,并按照指示为你的Bot取个昵称以及用户名(Bot的用户名必需以bot结尾). ...

  4. ROS学习:创建机器人的urdf

    ROS学习之路08:创建机器人的urdf(xacro)模型并通过rviz可视化_Hi, Robotics-CSDN博客_urdf可视化 1 创建工作空间 mkdir -p ~/catkin_ws/sr ...

  5. 使用URDF创建机器人3D仿真模型

    在一个真实的机器人上编程很让我们更好的理解机器人的控制方式,因为真实的机器人会给我们反馈.但是在没有真实机器人供我们实践的时候,ROS的仿真功能是一个不错的选择. ROS通过URDF(UnifiedR ...

  6. ROS机器人Diego 1#制作(十六)创建机器人的urdf模型描述文件

    更多创客作品,请关注笔者网站园丁鸟,搜集全球极具创意,且有价值的创客作品 由于后续要做机械臂的控制,会用到机器人的urdf描述文件,moveit需要根据urdf中的数据进行机械臂的路径规划,这里介绍一 ...

  7. 基于asyncio编写一个telegram爬虫机器人

    原文链接 前言 aiotg 可以通过异步调用telegram api的方式来构建bot,因为决定开发一个爬虫功能的bot,所以网络请求阻塞是比较严重的性能障碍.而asyncio的异步非阻塞特性能够完美 ...

  8. 如何搭建Telegram群机器人

    Telegram Bot的创建简单,API全面且免费,适合国际业务. (1).创建telegram机器人 登录Telegram,并找到@BotFather. 点击START,选择/newbot,输入你 ...

  9. telegram电报机器人配置

    如何创建一个机器人 略 机器人配置 public class MyBot extends TelegramLongPollingBot {private String token = "xx ...

最新文章

  1. 算法理解|从头开始理解梯度提升算法
  2. python制作图形化小游戏_创意编程|Python的GUI简易界面设计测测你的反应力
  3. Transformer靠什么“基因“,得以闯入CV界秒杀CNN?
  4. httpclient妙用一 httpclient作为客户端调用soap webservice(转)
  5. java缓存同步_浅谈JSON的数据交换、缓存问题和同步问题
  6. 开发服务器 VSS开发库 自动备份方案
  7. 清华90后博士后万蕊雪:科研这场马拉松,我会一直跑下去
  8. 学习Spring Boot:(二十二)使用 AOP
  9. Linux命令解释之df
  10. OpenCV之图像二值化
  11. 收藏几个漂亮的login页面验证
  12. 一个字同时设置了粗体斜体,哪个先生效?
  13. java 零配置_Spring零配置之@Configuration注解详解
  14. C#发送邮件,包含发送附件
  15. 财务系统如何避免对账时一分钱误差?
  16. QT 按钮切换背景图片
  17. [收藏] Javascript Keycode表
  18. 使用Java随机产生四位字母作为验证码
  19. 论文笔记:FFA-Net Feature Fusion Attention Network for Single Image Dehazing
  20. 【机械】基于简化几何解法的六轴机械臂位置规划附matlab代码

热门文章

  1. Windows azure 上将Legcay IO操作轻松切换到Blob
  2. linux桌面天气,Ubuntu桌面美化:添加Gmail +天气预报插件[图文]
  3. 使用git命令导出项目_【git学习】SVN项目迁移到Git操作指南
  4. 云网融合 — 云网之争
  5. Linux Kernel TCP/IP Stack — Overview
  6. 互联网协议 — BGP 边界网关协议 — Overview
  7. OpenStack 实现技术分解 (5) 应用开发 — 使用 OpenStackClients 进行二次开发
  8. 如何让自己的简历在万人从中一眼就能被HR选中
  9. 不用图片的DIV圆角(兼容各浏览器)
  10. DELPHI FMX 获取系统版本 ANDROID IOS通用