0

我使用 setwebhook 方法设置了我的电报机器人的 webhook,但是当我在机器人中发送消息时,不要在我的 URL 中使用它。

    https://api.telegram.org/bot<token>/setwebhook?url=https://www.example.com/bot/temp.php

在我的主机中,我使用 PHP 语言进行分析和回答。我使用此命令从机器人获取更新。

    $update = file_get_contents(“php://input”);

但是在运行这一行 $update 之后是空的。当我使用 webhook 不获取数据时,没有 setwebhook bot 获取更新没有问题。

结果运行 getWebhookinfo 是:

    {"ok":true,"result":{"url":"https://example.com/bot/temp.php","has_custom_certificate":false,"pending_update_count":0,"max_connections":40}}

我必须是真正的“has_custom_cere”吗?谢谢你帮助我

4

4 回答 4

2

Mohammad,我认为电报向您发送请求时发生了 PHP 错误。以下代码应该可以很好地获取电报请求。

$json = file_get_contents('php://input');
$request = json_decode($json);

我认为您的脚本在此代码之前停止。我建议您启用 PHP 调试模式并检查错误日志。

于 2017-04-20T17:22:17.677 回答
2

您可以通过以下方法找出问题:

检查getWebhookInfo方法,确保您的 webhook URL 正确,并且没有last_error_message字段。

将类似的数据发布到您的服务器,这里有一些您可以使用的数据curl -d JSON,只需将其复制并在您自己的服务器上运行即可。

最后,检查您的 CDN 配置(如果您已在该服务器上应用),暂时禁用泛洪或任何检查。

于 2017-04-20T09:52:53.730 回答
0

该方法的结果是什么,/getwebhookinfo您可以在这里发布吗?请检查您的 SSL 证书是否有效(对我来说只有一次)以及如果您在浏览器中调用该网站会显示什么(任何 php 错误?)。

我会评论说,但我没有足够的代表......对不起:/

于 2017-04-20T09:42:13.300 回答
0

请按照这种方式进行操作,如果您没有得到答案,则说明您PHP有问题:
1-通过键入/revokeAuth Key撤销您的from 2-通过 new 重置您的:BotFather
WebbhookAuth Key

https://api.telegram.org/bot<token>/setWebhook?url=https://www.website.com/bot_path

注意#1:setWebhook区分大小写,W关键字必须大写。
注意#2:如果您使用CMS的是 Codeigniter、Laravel、Zend 等。它不需要放在.php您的后面bot_path,如果不使用它。
注意#3:如果你想删除Webhook你设置的最后一个,你只需要在上面写url?url=可以了。
3-毕竟你从电报收到这条消息:

{"ok":true,"result":true,"description":"Webhook 已设置"}

现在您可以测试您的 Bot,但请注意,这样做是为了检查您的Auth Key,如果没有问题,那么您的PHP代码绝对有问题。如果您还有问题,请在网站上与我联系以解决Graphap,然后将正确答案放在这里。
我告诉要重新检查这种方式,因为我经常遇到问题,因为Auth Key它不起作用但现在它也能正常工作。

于 2017-07-14T21:15:38.433 回答