创建telegram 机器人 并发送消息

您所在的位置:网站首页 telegram发送图片加文字 创建telegram 机器人 并发送消息

创建telegram 机器人 并发送消息

2024-07-04 01:23| 来源: 网络整理| 查看: 265

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 /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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3