我正在尝试创建一个Telegram Bot。我关注this video。我的代码在localhost中工作,但是当我把它们放在服务器上时,结果是不同的。此代码只调用Telegram api的getUpdates
方法。
代码:
<?php
$botToken = "146158152:AAHO**********-L3xF08RN7H0xK8E";
$website = "https://api.telegram.org/bot".$botToken;
$update = file_get_contents($website."/getUpdates");
var_dump($update);
?>
Localhost结果:
string(616) "{"ok":true,"result":[{"update_id":35****293, "message":{"message_id":1,"from":{"id":95*****4,"first_name":"Mahmood","last_name":"Kohansal","username":"mahmoodkohansal"},"chat":{"id":95*****4,"first_name":"Mahmood","last_name":"Kohansal","username":"mahmoodkohansal","type":"private"},"date":1448737853,"text":"\/start"}},{"update_id":356676294, "message":{"message_id":2,"from":{"id":95*****4,"first_name":"Mahmood","last_name":"Kohansal","username":"mahmoodkohansal"},"chat":{"id":95881214,"first_name":"Mahmood","last_name":"Kohansal","username":"mahmoodkohansal","type":"private"},"date":1448737855,"text":"1"}}]}"
和服务器结果:
bool(false)
抱歉我的英语不好。
答案 0 :(得分:1)
如果您的代码在localhost中工作,那么第一个假设是您的服务器未能成功建立与bot api的连接。 也许你应该把它放在if语句中。
$token = "your token";
$website = "https://api.telegram.org/bot".$token;
if($updates = file_get_contents($website."/getUpdates"))
{
echo "Connection made";
}
else
{
echo "Fail";
}
您还可以确定未设置webHook吗?如果设置了webHook,则getUpdates方法不会返回结果。
答案 1 :(得分:0)
PHP file_get_contents方法就是问题所在。我发现此方法here存在同样的问题,并使用该解决方案来解决我的问题。