调用 Telegram API 创建一个 feedreader 机器人
Calling Telegram API to create a feedreader bot
我看到了新的 API 机器人可以创建客户机器人,我看到了一些来源,例如 this and this I have also read about @fatherbot
which is about registering bots,I also searched about some examples about telegram bots such as this 一个,我知道如何在 php
和 python
但无法找到如何调用 api 方法以及从哪里获取 start.Does 有人知道如何开始吗?
我也是 Telegram API 的新手,但您可以从访问此 URL 开始,您应该在其中将 (token) 替换为您自己生成的令牌 buy BotFather:
https://api.telegram.org/bot(token)/METHOD_NAME
例如,如果您想开始处理通过 PHP 脚本发送给您的机器人的请求,您应该这样调用:
https://api.telegram.org/bot(token)/setWebhook?url=https://yourdomain.com/path_to_your_script/
请注意,您必须拥有支持 SSL 的网站才能开始使用电报 API。
Getting updates
There are two mutually exclusive ways of receiving updates for your bot
— the getUpdates method on one hand and Webhooks on the other.
因此 PHP 机器人脚本根据接收模式以不同的方式工作
使用 getUpdates
bot API 的访问是通过 HTTP GET/POST,官方帮助中有详细说明。
- 使用无限循环从电报中读取消息,使用 HTTP GET/POST
如果有新消息
- 解析消息
- 使用 HTTP 发送消息 GET/POST
- 睡几秒钟
使用 WebHook
当使用 WebHook(并且配置良好)时,发送给您的机器人的新消息将触发从电报服务器到您配置的 url 的 HTTP POST 请求,在您自己的服务器上,由您的 PHP脚本。
在您的 PHP 脚本中,解析来自 HTTP POST 的新消息,并使用 HTTP POST 将消息发回电报服务器。
因此,差异只存在于从电报中获取消息时,所有发送到电报的响应都是通过 HTTP GET/POST,详情请参见官方 提出请求 部分 API.
有些人在 github 上发了一些非官方的 PHP api:
您可以使用这个基本示例来开始。我建议使用类似 curl 的方法添加更多润色并添加一些错误处理。
<?php
$bot_id = "<bot ID generated by BotFather>";
# Note: you want to change the offset based on the last update_id you received
$url = 'https://api.telegram.org/bot' . $bot_id . '/getUpdates?offset=0';
$result = file_get_contents($url);
$result = json_decode($result, true);
foreach ($result['result'] as $message) {
var_dump($message);
}
# You can send a message like this:
# The chat_id variable will be provided in the getUpdates result
# TODO: urlencode your message
$url = 'https://api.telegram.org/bot' . $bot_id . '/sendMessage?text=message&chat_id=0';
$result = file_get_contents($url);
$result = json_decode($result, true);
var_dump($result['result']);
您可以将我的新库用于 telegram 的 bot api!
https://github.com/tekook/TelegramLibrary
它具有新 api 的所有功能,并且是一个易于使用且基于事件的库!
玩得开心!
关于 getUpdates API 和无限循环,php 服务器不能让代码执行超过 30 秒。 ,因此无限循环无法正常工作。
作为脚本无法 运行 超过 30 秒的答案:
使用set_time_limit(0);让它永远持续下去。但是请注意,任何无限时间循环都有些危险; cpu 猪或内存泄漏等副作用会影响您的服务器。这就是为什么许多 ISP 不允许此设置的原因。
我建议初学者这样开始:
在您的 Telegram 应用程序中搜索 BotFather
向他发送 /newbot 命令。按照他的指示去做。
他会给你一个令牌,类似123456789:ABCDefGHIJKLmnopQRstUVwXYz
打开浏览器window,在地址栏中输入以下形式的内容:https://api.telegram.org/bot<token>/getMe
例如,使用上面的假标记:https://api.telegram.org/bot123456789:ABCDefGHIJKLmnopQRstUVwXYz/getMe
它应该 return 您的机器人信息 JSON 格式。这表明访问Bot API无非是发出HTTP请求。
在 Telegram 应用程序上搜索您的机器人。给它发消息。
在浏览器window上输入:https://api.telegram.org/bot<token>/getUpdates
请记住替换令牌。您应该会看到刚刚发送的消息。请注意 from
和 chat
字段。那就是你。
然后,您可以试用一些库。为了在这里提供一些语言平衡,我建议 telepot,这是我创建的一个 Python 框架。项目页面有很多文档和示例。
最后,即使有图书馆的帮助,我也鼓励您阅读底层的 Bot API documentations。了解它可以帮助您充分利用它的力量。
祝你好运。
我看到了新的 API 机器人可以创建客户机器人,我看到了一些来源,例如 this and this I have also read about @fatherbot
which is about registering bots,I also searched about some examples about telegram bots such as this 一个,我知道如何在 php
和 python
但无法找到如何调用 api 方法以及从哪里获取 start.Does 有人知道如何开始吗?
我也是 Telegram API 的新手,但您可以从访问此 URL 开始,您应该在其中将 (token) 替换为您自己生成的令牌 buy BotFather:
https://api.telegram.org/bot(token)/METHOD_NAME
例如,如果您想开始处理通过 PHP 脚本发送给您的机器人的请求,您应该这样调用:
https://api.telegram.org/bot(token)/setWebhook?url=https://yourdomain.com/path_to_your_script/
请注意,您必须拥有支持 SSL 的网站才能开始使用电报 API。
Getting updates
There are two mutually exclusive ways of receiving updates for your bot
— the getUpdates method on one hand and Webhooks on the other.
因此 PHP 机器人脚本根据接收模式以不同的方式工作
使用 getUpdates
bot API 的访问是通过 HTTP GET/POST,官方帮助中有详细说明。
- 使用无限循环从电报中读取消息,使用 HTTP GET/POST
如果有新消息
- 解析消息
- 使用 HTTP 发送消息 GET/POST
- 睡几秒钟
使用 WebHook
当使用 WebHook(并且配置良好)时,发送给您的机器人的新消息将触发从电报服务器到您配置的 url 的 HTTP POST 请求,在您自己的服务器上,由您的 PHP脚本。
在您的 PHP 脚本中,解析来自 HTTP POST 的新消息,并使用 HTTP POST 将消息发回电报服务器。
因此,差异只存在于从电报中获取消息时,所有发送到电报的响应都是通过 HTTP GET/POST,详情请参见官方 提出请求 部分 API.
有些人在 github 上发了一些非官方的 PHP api:
您可以使用这个基本示例来开始。我建议使用类似 curl 的方法添加更多润色并添加一些错误处理。
<?php
$bot_id = "<bot ID generated by BotFather>";
# Note: you want to change the offset based on the last update_id you received
$url = 'https://api.telegram.org/bot' . $bot_id . '/getUpdates?offset=0';
$result = file_get_contents($url);
$result = json_decode($result, true);
foreach ($result['result'] as $message) {
var_dump($message);
}
# You can send a message like this:
# The chat_id variable will be provided in the getUpdates result
# TODO: urlencode your message
$url = 'https://api.telegram.org/bot' . $bot_id . '/sendMessage?text=message&chat_id=0';
$result = file_get_contents($url);
$result = json_decode($result, true);
var_dump($result['result']);
您可以将我的新库用于 telegram 的 bot api! https://github.com/tekook/TelegramLibrary
它具有新 api 的所有功能,并且是一个易于使用且基于事件的库!
玩得开心!
关于 getUpdates API 和无限循环,php 服务器不能让代码执行超过 30 秒。 ,因此无限循环无法正常工作。
作为脚本无法 运行 超过 30 秒的答案:
使用set_time_limit(0);让它永远持续下去。但是请注意,任何无限时间循环都有些危险; cpu 猪或内存泄漏等副作用会影响您的服务器。这就是为什么许多 ISP 不允许此设置的原因。
我建议初学者这样开始:
在您的 Telegram 应用程序中搜索 BotFather
向他发送 /newbot 命令。按照他的指示去做。
他会给你一个令牌,类似
123456789:ABCDefGHIJKLmnopQRstUVwXYz
打开浏览器window,在地址栏中输入以下形式的内容:
https://api.telegram.org/bot<token>/getMe
例如,使用上面的假标记:https://api.telegram.org/bot123456789:ABCDefGHIJKLmnopQRstUVwXYz/getMe
它应该 return 您的机器人信息 JSON 格式。这表明访问Bot API无非是发出HTTP请求。在 Telegram 应用程序上搜索您的机器人。给它发消息。
在浏览器window上输入:
https://api.telegram.org/bot<token>/getUpdates
请记住替换令牌。您应该会看到刚刚发送的消息。请注意from
和chat
字段。那就是你。然后,您可以试用一些库。为了在这里提供一些语言平衡,我建议 telepot,这是我创建的一个 Python 框架。项目页面有很多文档和示例。
最后,即使有图书馆的帮助,我也鼓励您阅读底层的 Bot API documentations。了解它可以帮助您充分利用它的力量。
祝你好运。