我正在使用Google Cloudshell平台创建一个用于托管webhook的经过ssl认证的网址。所以我最初开始使用getupdates来查找chat_id并发送机器人消息。以下代码,旨在获取用户的聊天ID,然后将其发送给他“文本”,工作正常。
<?php
$botToken = "insert bot token" ;
$website = "https://api.telegram.org/bot".$botToken ;
$update = file_get_contents($website."\getupdates");
$updateArray = json_decode($update, TRUE) ;
$chatId = $updateArray["result"][0]["message"]["chat"]["id"] ;
file_get_contents($website."/sendmessage?chat_id=".$chatId."&text=test") ;
?>
然后我使用setwebhook设置了一个webhook并修改了上面的代码。
<?php
$botToken = "insert bot token" ;
$website = "https://api.telegram.org/bot".$botToken ;
$update = file_get_contents("php://input");
$updateArray = json_decode($update, TRUE) ;
$chatId = $updateArray["result"][0]["message"]["chat"]["id"] ;
file_get_contents($website."/sendmessage?chat_id=".$chatId."&text=test") ;
?>
换句话说,我用“php:// input”更改了\ getupdates。它确实不工作。
我认为谷歌应用引擎可能不会自动签署其ssl证书,也许这就是为什么webhook不起作用的原因。
任何帮助将不胜感激。
编辑:为了回应下面的答案/评论,我尝试了getWebhookinfo方法并获得了
“url:”https://my_url.com“,”has_custom_certificate“:false,”pending_update_count“:0,”max_connections“:40
答案 0 :(得分:0)
您可以通过以下方法找出问题:
检查getWebhookInfo方法,确保您的webhook网址正确无误,并且没有last_error_message
字段。
将类似数据发布到您的服务器,here是您可以在curl -d JSON
中使用的一些数据,只需将其复制并在您自己的服务器上运行。
最后,检查您的CDN配置(如果您已在该服务器上申请),临时禁用洪水或任何检查。