创建telegram 机器人 并发送消息

摘要:
telegram有个聊天机器人可以自动发消息,也是挺有意思的。它还开放了api,可以自己创建bot,通过api发送消息,视频,声音,文件等功能。下面,我简单介绍下怎么新建一个bottelegram有两种api,一种是botapi,一种是telegramapi。botapi是基于http访问,telegramapi是基于mtproto访问,访问需要加密,相对要复杂一些。访问https://telegram.me/botfather它会提示你用telegram打开。然后在这个group中发送消息。chat\_id=-zzzzzzzzzz&text=mysampletext执行完,这个group就收到消息了。

telegram是国外常用的聊天功能,功能很强大,除了聊天还可以玩游戏,传文件,视频,声音,投票,群组。当然,这些跟qq,微信都很类似了。但是它毕竟是国外最常用的IM之一。telegram有个聊天机器人可以自动发消息,也是挺有意思的。它还开放了api,可以自己创建bot,通过api发送消息,视频,声音,文件等功能。下面,我简单介绍下怎么新建一个bot
telegram有两种api,一种是bot api,一种是telegram api。bot api是基于http访问,telegram api是基于mtproto访问,访问需要加密,相对要复杂一些。后者也可以实现发送消息等功能。这里我只说第一种bot api。
首先要创建一个bot。访问
https://telegram.me/botfather
它会提示你用telegram打开。然后你就打开了botfarther的聊天对话框。输入
/newbot
回车发送。botfarther会反馈
Alright, a new bot. How are we going to call it? Please choose a name for your bot.
输入你要创建的bot名字。例如david_bot,回车发送
它会反馈
Good. Now let's choose a username for your bot. It must end in bot. Like this, for example: TetrisBot or tetris_bot.
我再输入 DavidBot。这是这个机器人的名字。
它会反馈
Sorry, this username is already taken. Please try something different.
这名字已经被用了。我们换一个
GZ_David_Bot
它会反馈
BotFather, [16.02.17 14:23]
Done! Congratulations on your new bot. You will find it at t.me/Gz_David_Bot. 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:
xxx:xxx

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

这里它生成了api token。我们记下它。以后api请求都会用到。如果需要帮助,输入 /help
输入/token 可以重新生成一个token。
/revoke 可以撤销一个token
我们需要用这个bot来发送消息,首先需要创建一个group,加入一些人,同时将这个bot也加进去。然后在这个group中发送消息。类似 /hello @GZ_David_Bot
然后访问

https://api.telegram.org/botxxx:xxx/getUpdates  

我们会获取到一个json

{  
    "ok" : true,  
    "result" : [{  
            "update_id" : xxx,  
            "message" : {  
                "message_id" : 4,  
                "from" : {  
                    "id" : xxx,  
                    "first_name" : "david",  
                    "last_name" : "huang",  
                    "username" : "davidhuang"  
                },  
                "chat" : {  
                    "id" : -xxx,  
                    "title" : "bot",  
                    "type" : "group",  
                    "all_members_are_administrators" : true  
                },  
                "date" : xxx,  
                "text" : "/hello @GZ_David_Bot",  
                "entities" : [{  
                        "type" : "bot_command",  
                        "offset" : 0,  
                        "length" : 6  
                    }  
                ]  
            }  
        },  
    ]  
}  

这里,我们看到有个id,指的就是当前group的id。我们记下它 。然后执行以下curl。
botXXX:YYYY 指的是bot+token,一定要加上bot前缀
chat_id就是上面的id,注意是负数,必须有-
发送内容是=my sample text

curl -X POST "https://api.telegram.org/botXXX:YYYY/sendMessage" -d "chat\_id=-zzzzzzzzzz&text=my sample text"

或者在浏览器地址输入:

https://api.telegram.org/botXXX:YYYY/sendMessage?chat\_id=-zzzzzzzzzz&text=my sample text

执行完,这个group就收到消息了。
api git:
https://github.com/unreal4u/telegram-api/graphs/contributors
但是悲剧的是,它只支持php7.
https://github.com/unreal4u/telegram-api/wiki
另外,也可以通过webhook api获取聊天记录等功能。但是这个api要求我们的站点必须是https证书
还有个bot sdk,它只要php5.5就可以了
https://telegram-bot-sdk.readme.io/reference#forwardmessage
https://github.com/irazasyed/telegram-bot-sdk
https://telegram-bot-sdk.readme.io/v2.0/reference
sdk 文档:
https://telegram-bot-sdk.readme.io/docs
安装
composer require irazasyed/telegram-bot-sdk
这个sdk包含了所有的telegram bot api,例如支持command,keyboard,webhook
提示
浏览器调用telegram接口需要提子,
在浏览器地址输入:

https://api.telegram.org/bot1071007686:AAHjbsMuHNskkLbBPfze2ZHaNUV4LJidNg8/sendMessage?chat_id=-433336330&text=helloworld

代码调试的话需要部署一台海外的web服务器去调用telegram api接口,以便于调试

参考文档:
https://fullmeter.com/blog/?p=14
http://stackoverflow.com/questions/32423837/telegram-bot-how-to-get-a-group-chat-id-ruby-gem-telegram-bot
https://core.telegram.org/bots
https://core.telegram.org/bots/api
文章参考:https://blog.csdn.net/hc13097240190/article/details/80745446

免责声明:文章转载自《创建telegram 机器人 并发送消息》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇TCP连接的建立和关闭openwrt的GPIO控制下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

阿里巴巴开源技术汇总:115个软件(四)

阿里巴巴开源技术汇总:115个软件(四) 摘要: 阿里巴巴开源技术汇总:115个软件(四)今天发布了!在前面三期中相信大家已经浏览了很多优秀的开源作品,领略到了开源的魅力。我们相信今天第四期的内容也不会令广大的读者失望的,下面让我们跟随着云栖社区一起看看在这期汇总里又会踊跃出什么优秀的作品吧! 阿里巴巴开源技术汇总:115个软件(四)今天发布了!在前...

WebMagic

WebMagic 是干嘛的? WebMagic 是一个 Java 平台上的开源爬虫框架,其设计参考了 Scrapy,实现则参考了 HttpClient 和 Jsoup。其由四大组件组成: Downloader,负责下载网页,使用 HttpClient。 PageProcessor,负责解析网页和链接发现,使用 Jsoup 和 Xsoup。 Schedul...

ThinkPad X1 Carbon 2016 (4th)安装黑苹果MacOS High Sierra(10.13)

原文参考:https://forum.51nb.com/forum.php?mod=viewthread&tid=1808874&extra=page=1&page=1 不同的是,maj的配置是i7,我的是i5,主板芯片组也不一样。他的EFI大部分能通用。 安装镜像:黑果小兵(macOS High Sierra 10.13.1(17...

一些值得收藏的开源框架

阅读本文大概需要 7.2 分钟。 来源:segmentfault.com/a/1190000017346799 1. 分布式应用服务开发的一站式解决方案 Spring Cloud Alibaba Spring Cloud Alibaba 致力于提供分布式应用服务开发的一站式解决方案。 此项目包含开发分布式应用服务的必需组件,方便开发者通过 Spring C...

Change of Variables Theorem 变量变换定理

一个有效描述长度、面积、体积和广义n维体积(内容)如何被可微函数所扭曲的定理。特别是,变量变换定理将弄清内容扭曲的整个问题简化为理解无穷小的扭曲,即由线性映射的行列式所给出的导数(一个线性映射)的扭曲。 变量变换定理在标准化流中的应用 https://lilianweng.github.io/lil-log/2018/10/13/flow-based-d...

原创: SpringBoot配置HTTPS,并实现HTTP访问自动转HTTPS访问

一:服务器配置成功 提示: 后朋友推荐用宝宝塔和https://freessl.cn申请操作配置成功,后期进入研究  java -jar xxx.jar --server.port=7777不要使用,请给如下域名使用 apijob.kjfwtp.com 原创链接:https://www.cnblogs.com/asplover/p/15183103.ht...