telegtamTelegram聊天机器人-电报telegram技巧分享

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

下令并根据说明进行操作。完成初始步骤后,您将得到:

  • 您自己的令牌
  • Telegram api URL – api.telegram.org/<your token>
  • 链接到文档

现在,机器人是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技巧分享

steam正在播放-电报telegram技巧分享

facebooktelegram电报账号-电报telegram技巧分享

如何制作自己的电报贴纸TelegramStickers/搬运攻略-电报telegram技巧分享

京城最后发报人:曾一天收发电报十万封二零一六年-电报telegram技巧分享

俄罗斯政府全面封锁telegram加密通讯软件升级保护香港示威者-电报telegram技巧分享

菠菜推广引流找我-电报telegram技巧分享

不想被监控?行动者们-电报telegram技巧分享

telegram建群怎么创建群组-电报telegram技巧分享