我见过机器人的新API已启用创建自定义机器人,我已经看到一些来源,如this和this我也读过有关注册机器人的@fatherbot
,我还搜索了一些关于电报机器人的例子,例如this一个,我知道如何在php
和python
中编写代码,但无法找到如何调用api方法以及从何处获取start.Does任何人都知道如何开始?
答案 0 :(得分:11)
您可以使用此基本示例来帮助您前进。我建议使用像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']);
答案 1 :(得分:4)
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 bot脚本通过接收模式以不同的方式工作
访问bot API是通过HTTP GET / POST,详见官方帮助。
如果有新消息
当使用WebHook(并且配置良好)时,机器人的新消息将触发从电报服务器到您配置的URL的HTTP POST请求,在您自己的服务器上,由PHP脚本解析。
在PHP脚本中,解析来自HTTP POST的新消息,并使用HTTP POST将消息发送回电报服务器。
因此,差异只存在于从电报收到消息时,所有响应发送到电报都是通过HTTP GET / POST,详细信息在发出请求部分在官方API中。
有些人在github上发了一些非正式的PHP api:
答案 2 :(得分:3)
您可以将我的新库用于电报的机器人api! https://github.com/tekook/TelegramLibrary
它具有新api的所有功能,是一个易于使用和基于事件的libarry!
玩得开心!
答案 3 :(得分:3)
我建议初学者以这种方式开始:
在电报应用中搜索 BotFather
向他发送 / newbot 命令。按照他的指示。
他会给你一个令牌,比如123456789:ABCDefGHIJKLmnopQRstUVwXYz
打开浏览器窗口,在地址栏中输入以下格式:https://api.telegram.org/bot<token>/getMe
例如,使用上面的假令牌:https://api.telegram.org/bot123456789:ABCDefGHIJKLmnopQRstUVwXYz/getMe
它应该以JSON格式返回您的机器人信息。这表明访问Bot API只不过是发出HTTP请求。
在电报应用中搜索您的机器人。发送消息。
在浏览器窗口中输入:https://api.telegram.org/bot<token>/getUpdates
请记住替换令牌。您应该看到刚刚发送的消息。请注意from
和chat
字段。那就是你。
然后,您可以尝试一些库。为了在这里提供一些语言平衡,我建议 telepot ,这是我创建的Python框架。项目页面有很多文档和示例。
最后,即使在图书馆的帮助下,我也鼓励您阅读基础 Bot API documentations 。了解它可以帮助您充分利用它。
祝你好运。答案 4 :(得分:1)
关于getUpdates API和无限循环,php服务器不能让你在30秒内执行代码。 ,无限循环无法正常工作。
答案 5 :(得分:0)
我对Telegram API也很陌生,但你可以开始访问这个URL,你应该用你自己的令牌替换(令牌)买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。
答案 6 :(得分:0)
作为脚本无法运行超过30秒的答案:
使用set_time_limit(0);让它永远持续下去。但是请注意,任何无限时间循环都有点危险; cpu hogs或内存泄漏等副作用会在你的服务器上吃掉。这就是为什么许多ISP不允许这种设置。