Php 从电报'迁移;在bot中使用webhook的getUpdate
我有一个电报机器人中的网络钩子问题!我有一个为我的电报机器人提供令牌的表单,并根据表单中插入的令牌回答我的机器人。当我使用getupdate方法时,一切都很好,但当我使用webhook时,就不起作用了!我的URL有SSL证书,设置了web挂钩Php 从电报'迁移;在bot中使用webhook的getUpdate,php,bots,telegram,webhooks,Php,Bots,Telegram,Webhooks,我有一个电报机器人中的网络钩子问题!我有一个为我的电报机器人提供令牌的表单,并根据表单中插入的令牌回答我的机器人。当我使用getupdate方法时,一切都很好,但当我使用webhook时,就不起作用了!我的URL有SSL证书,设置了web挂钩 $botToken = $_POST['token']; //$botToken = json_decode($botToken, TRUE); $webSite = "https://api.telegram.org/bot" . $botToken;
$botToken = $_POST['token'];
//$botToken = json_decode($botToken, TRUE);
$webSite = "https://api.telegram.org/bot" . $botToken;
$update = file_get_contents("php://input");
$update = json_decode($update, TRUE);
$chatId = $update["message"]["chat"]["id"];
$message = $update["message"]["text"];
$message = strtolower($message);
switch ($message) {
case "/start":
sendMessage($chatId, "start!م");
break;
case "hi":
sendMessage($chatId, "hiii");
break;
case "khubi":
sendMessage($chatId, "bad nistam!");
break;
case "che khabar":
sendMessage($chatId, "salamati");
break;
default:
sendMessage($chatId, "chi migi ??");
// sendMessage($chatId, "$chatId");
}
function sendMessage($chatId, $message)
{
$url = $GLOBALS['webSite'] . "/sendMessage?chat_id=" . $chatId . "&text=" . urlencode($message);
file_get_contents($url);
}
问题是,当我使用web钩子并发布令牌时,它不起作用,但当我使用web钩子并将令牌存储在变量中时,它能正常工作。
我真的不知道为什么它不起作用,我什么都试过了!!!!
请给我指导,我怎么解决这个问题?如何克服此问题?电报机器人Webhook不会将令牌发布到服务器,但您可以将其作为Webhook URL的一部分。e、 g.,
https://www.sean.taipei/telegram/hook.php?token=12345:AAJqs_w-4
如果上述解决方案不起作用,您可以通过以下方法查找问题:
检查方法,确保您的webhook URL是正确的,并且没有last\u error\u message
字段
将类似的数据发布到您的服务器,这是一些您可以在curl-djson
中使用的数据,只需复制它并在您自己的服务器上运行即可
最后,检查您的CDN配置(如果您已在该服务器上应用)、临时禁用泛洪或任何检查。我对调试有一些一般性建议,这些建议可能会对您有所帮助:
{
"update_id":10000,
"message":{
"date":1441645532,
"chat":{
"last_name":"Test Lastname",
"id":1111111,
"first_name":"Test",
"username":"Test"
},
"message_id":1365,
"from":{
"last_name":"Test Lastname",
"id":1111111,
"first_name":"Test",
"username":"Test"
},
"text":"/start"
}
ngrok http 20201
20201是您的本地主机端口(localhost:20201)。
现在ngrok给你一个https链接,你必须把这个链接设置成你的电报webhook(就像你说的那样)。
此时,如果Telegram为您的bot发送webhook消息,那么您可以在本地主机中调试它
对于需要在本地主机上运行/调试telegram bot的用户,也许您可以使用此npm包 只需在您的计算机上使用
npm安装-g telehook
然后运行命令
telehook运行你的机器人:令牌密钥http://localhost/your-hook
您可以共享发布到此文件的示例json吗?字符串(73)”“您可以对您的令牌进行json编码并发布到此文件,您可以在文件获取内容(“php://input");
和json_decode
相同。字符串(45)“434441867:AAFIcipstLlbLZ0NXFU4j8RA6wB02mkftUM”我使用json编码,但它不工作!!!!我做了所有这些,但没有得到结果,我真的在寻找这个,但我不知道什么是错误???