暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Telegram Bot (二)处理特定的命令

胡言与乱语 2018-09-16
3059

在上一会讲了如何创建和设置telegram bot ,在这一会就来实现处理具体的命令,在这里我们需要用到一下几个东西:

  1. Telegram Bot API(https://core.telegram.org/bots/api)

  2. 上次申请telegram bot 时获取的token

  3. Google App Script 

  4. Goole spreadsheet


机器人的token 如果记不到了可以找botfather查询(ps:不要告诉其他人,会使其他人控制你的机器人)

方法:找到BotFather——/start——/mybots——选择你的机器人—— API ToKen


我们查看bot api 可以发现:

授权你的机器人

每个bot 在创建时都会获得一个唯一的身份验证令牌令牌看起来像123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11
,但我们将在本文档中使用简单的<token>您可以在本文档中了解如何获取令牌和生成新令牌

发出请求

对Telegram Bot API的所有查询都必须通过HTTPS提供,并且需要以这种形式呈现:https://api.telegram.org/bot<token>/METHOD_NAME
像这样举例如:

https://api.telegram.org/bot123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11/getMe

我们支持GETPOST HTTP方法。我们支持四种在Bot API请求中传递参数的方法:

  • URL查询字符串

  • 应用程序/ x-WWW窗体-urlencoded

  • application json(上传文件除外)

  • multipart form-data(用于上传文件)

响应包含一个JSON对象,该对象始终具有布尔字段“ok”,并且可能具有可选的字符串字段“description”,其中包含对结果的可读描述。如果'ok'等于true,则请求成功,并且可以在'result'字段中找到查询结果。如果请求不成功,'ok'等于false,错误在'description'中解释。还返回Integer'error_code'字段,但其内容将来可能会发生变化。某些错误也可能具有ResponseParameters类型的可选字段“参数” ,这有助于自动处理错误。

  • Bot API中的所有方法都不区分大小写。

  • 所有查询都必须使用UTF-8。


这样我们就来测试下请求

https://api.telegram.org/bot<token>/METHOD_NAME

将其中的token换成你的 bot api token ,method_name 写你需要的方法




getMe方法来看看

我们可以从返回的json中看到我们的机器人信息

getUpdates

可以发现返回的是

{

  • oktrue,

  • result: []

}

这时打开机器人和其对话

我们再看看getUpdates方法会显示成什么样

好,方法的基本演示就到这里,下面我们就来使用google 工具来实现机器人的自动回复功能(也是可以使用php Python node.js的,但是由于我没有服务器和也不会这三个,所有就只有使用google app script),打开我们的google云端硬盘,新建一个表格,名称随意,点击工具,选择脚本编辑器(Script editor)

这时就会创建一个Script 

这时我们就开始来编辑代码了

我们使用 google Script 来如下编写测试下

运行程序会弹出权限对话框,给与权限

这时我们打开我们的-查看-日志会出现如下图

我们会发现这个和我们在上面地址栏中使用在getMe方法是一样的结果

如此,我们就将Telegram bot 和google Script 两个建立了连接,接下来我们就可以来编写具体的业务了!!下面就放出一个我已经写好的机器人,如果想用的话可以去我的github上找到我的代码

如图,机器人已经可以对用户的请求做出相应的回话了

大家慢慢研究吧

github地址:https://github.com/Htao0310/Telegram_bot_Demo




文章转载自胡言与乱语,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论