telegram有两种api,这里接纳botapi,系统:centos6.x 语言:java
首先下载telegram pc版本,然后创建一个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名字。比方test_bot,回车发送
它会反馈
Good. Now let’s choose a username for your bot. It must end in
bot
. Like this, for example: TetrisBot or tetris_bot.
我再输入 TestBot。这是这个机器人的名字。
它会反馈
Sorry, this username is already taken. Please try something different.
这名字已经被用了。我们换一个
GZ_Test_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/bot(token)/getUpdates 这个请求是请求bot相关的消息,假如返回一个带消息的json说明bot创建成功
接下来就是要定制bot的下令,根据用户输入的下令做出差别的相应
要定制下令首先要能收到bot相关的消息,官方api提供了两种方法getUpdates(拉取)和setWebHook(推送)
为了方便开发和消息的及时性,接纳第二种setWebHook
要说的是,服务必须是https的详细可见 https://core.telegram.org/bots/api
setWebHook很easy,在服务器实行crul https://api.telegram.org/bot(token)/setWebHook?url=https://you.domain.com/xxx
假如设置成功,会返回一个json消息体是hook was set
如今就可以去telegram跟bot的发消息了,正常的话,这边会收到消息(条件是这边写好了服务)
但是在这里我碰到一个问题,无论怎样我都收不到消息,之后用getUpdates实验发现确实有消息
于是 https://api.telegram.org/bot(token)/getWebHookInfo 返回结果表现证书设置不准确
我这里的服务器是tomcat+nginx,证书是买的公共证书,理论上不会有问题,于是去谷歌一下发现眉目
https://www.cubewebsites.com/blog/guides/fix-telegram-webhooks-not-working/
上面说需要把用到的证书归并成一个,找老大确认后发现确实可以收到消息了
但是新问题又来了,吸收到的消息体是空的,实验许多遍都是空的,谷歌上也有同样的提问,但是不停没找到合适的解决方案
细致察看官方api后发现参数是post过来的,推测会不会是接参的方法不对,所示直接用输入流读取参数算了,经实验发现确实好使
如此一来,能收到消息了,就辨认消息内容开发差别的逻辑就好了
telegram机器人设置问题
Telegram聊天机器人
聊天机器人的一大长处是,与应用程序差别,它们无需下载,无需更新,也不会占用手机内存的空间。
另一个是我们可以在同一聊天中集成多个机器人。这样一来,我们就可以制止根据时时刻刻从!一个应用程序跳到另一个应用程序。
重要结果?更舒畅的用户体验以及更快,更简单的客户服务交互。
怎样为Telegram创建机器人
首先是第一件事。您需要注册Telegram (显然)。我提议使用Telegram Web客户端来测试底子知识。
打开Telegram应用程序,搜索@BotFather并开始聊天。发送
/newbot
下令并根据说明进行操作。完成初始步骤后,您将得到:
现在,机器人是100%被动的。
与Chatcompose集成
要继续,您将需要一个ChatCompose帐户。您可以 在这里 注册。
注册后,转到”安装”>”集成”部分。在那边,您将看到与Telegram集成的选项。
您将看到以下内容:
输入您使用BotFather天生的令牌并保存。
令牌的表面应类似于000000:AAAAAAAAAAAAA,此中零是数字,而As是字母。
保存后,我们将在Telegram注册我们的机器人路线。从我们的平台复制路线,并将其与您的令牌一起粘贴到此url中。
api.telegram.org/bot<your_token>/setWebHook?url=<your_route>
网址应如下所示:
api.telegram.org/bot000000:AAAAAAAAAAAAA/setWebHook?url=https://admin.chatcompose.com/telegram/yourbot
导航到该路线。答案应返回以下内容:
{"ok":true,"result":true,"description":"Webhook was set"}
要测试设置是否成功,可以导航至:
api.telegram.org/bot<your_token>/getWebhookInfo
该调用应返回我们方才设置的chatcompose网址。
假如尚未在ChatCompose中输入由BotFather天生的令牌,请立刻实行。
下一步
您的机器人应该已在Telegram上安装并运行。不要忘掉在”数据库”部分的ChatCompose中设置主动相应。
单击由BotFather天生的机器人的地点(t.me/nameofyour),然后开始与其进行交互。
您是否正在使用准确的chat_id并在地点中的“bot”之后包含机器人的令牌? (api.telegram.org/bot
token
/ sendMessage)
这个页面 讲明了关于发送的一些事情(在“sendMessage”部分中) – 基本的工具,但我常常忘掉底子知识。
报价:
为了使用sendMessage方法,我们需要使用准确的chat_id。
首先,让我们通过Telegram客户端将/ start下令发送到我们的机器人。
发送此下令后,让我们实行getUpdates下令。
curl -s \ -X POST \ https://api.telegram.org/bot<token>/getUpdates \ | jq .
相应将如下所示
{ "result": [ { "message": { "text": "/start", "date": 1435176541, "chat": { "username": "yourusername", "first_name": "yourfirstname", "id": 65535 }, "from": { "username": "yourusername", "first_name": "yourfirstname", "id": 65535 }, "message_id": 1 }, "update_id": 714636917 } ], "ok": true }
我们对property.message [0] .chat.id感爱好,将此信息保存在其他地方。
请留意,这只是一个示例,您大概需要设置一些主动处置这些信息如今我们怎样发送消息?这很easy,让我们看一下这个片断。
curl -s \ -X POST \ https://api.telegram.org/bot<token>/sendMessage \ -d text="A message from your bot" \ -d chat_id=65535 \ | jq .
此中chat_id是之前保存的信息。
我盼望有所帮助。
本文网址:
http://www.1cm8858.com/d/2020617112154_65_1314068499/home
Ten articles before and after
弃如何评价TelegramMessenger?-电报telegram技巧分享
新年第一更使用TELEGRAM进行从未有过的畅快聊天体验-电报telegram技巧分享
facebooktelegram电报账号-电报telegram技巧分享
如何制作自己的电报贴纸TelegramStickers/搬运攻略-电报telegram技巧分享
京城最后发报人:曾一天收发电报十万封二零一六年-电报telegram技巧分享