站长视角
用户至上

建立telegram机器人教程

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”

执行完,这个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

參考文件:
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

赞(0) 打赏
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《建立telegram机器人教程》
文章链接:https://www.sshce.com/11821.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏