Telegram bot - api方法无法在服务器上运行

时间:2015-11-28 20:11:51

标签: php telegram telegram-bot

我正在尝试创建一个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)

抱歉我的英语不好。

2 个答案:

答案 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存在同样的问题,并使用该解决方案来解决我的问题。

相关问题