【发布时间】:2015-09-24 21:48:04
【问题描述】:
我已经阅读了一些关于 bot API 的问题,但找不到解决方案。
我的机器人工作正常,无需设置 webhook 和处理 /getUpdates。但我无法将“https://www.domain.com/page.php”设置为 webhook。
我在 Cloudflare 的灵活 SSL 证书后面有一个共享主机,浏览器没有警告它,所以我认为它工作正常。
我正在尝试将 Telegram 的 POST 放到一个文件中,以了解 webhook 是否需要不同的解析,但它是空的并且看不到 ssl_acces.log,所以我什至看不到 Telegram 是否到达该页面。 ..
这里是sn-p:
$message = json_decode(file_get_contents('php://input'), true);
file_put_contents('telegram.txt', var_dump($message));
我做错了什么?谢谢。
[解决方案]
登录方式为:
$debug = file_get_contents('php://input');
$fp = fopen('debug.txt', 'w');
fwrite($fp, $debug);
fclose($fp);
而解决办法是webhook必须设置不带www:
/setwebhook?url=https://domain.com/page.php
【问题讨论】:
-
也试过了:
$debug = file_get_contents('php://input'); $fp = fopen('debug.txt', 'w'); fwrite($fp, $debug); fclose($fp); -
$message = json_decode($_POST, true); file_put_contents('telegram.txt', $message);你为什么不试试呢? Telegram webhook 似乎正在发出 POST 请求。 -
完成@Ugur。谢谢,但是,没有运气。我正在向我的机器人发送消息,但没有显示 txt 文件......我认为 Telegram 没有到达页面,但我不知道如何测试它。如果我尝试 /getUpdates 只说它是活动的:
{"ok":false,"error_code":409,"description":"Error: Conflict: another webhook is active"} -
您可以尝试自己访问该页面,看看它是否正在生成输出。此外,正如错误消息所述,网络挂钩根本没有到达您的页面。
-
@Ugur,你试过了吗?阅读 de API 我认为消息是说设置了 webhook。如果没有,/getUpdates 将显示一个 json。也许我错了……
标签: php webhooks telegram-bot