【问题标题】:Telegram bot - api methods not working on serverTelegram bot - api 方法在服务器上不起作用
【发布时间】:2015-11-28 20:11:51
【问题描述】:

我正在尝试创建一个 Telegram Bot。我关注this video。我的代码在本地主机中工作,但是当我将它们放在服务器上时结果不同。这段代码只是调用 Telegram api 的getUpdates 方法。

代码:

<?php 

    $botToken = "146158152:AAHO**********-L3xF08RN7H0xK8E";
    $website = "https://api.telegram.org/bot".$botToken;

    $update = file_get_contents($website."/getUpdates");

    var_dump($update);

?>

本地主机结果:

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)

对不起,我的英语不好。

【问题讨论】:

标签: php telegram telegram-bot


【解决方案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 方法不会返回结果。

【讨论】:

  • 如果从本地主机再次运行该方法返回电报服务器返回正确答案,则表示未设置 webhook。
  • 那个......而且电报服务器今天出了问题,听到很多关于服务器停机/缓慢的投诉。
【解决方案2】:

PHP file_get_contents 方法是问题所在。我用here这个方法发现了同样的问题,用这个方法解决了我的问题。

【讨论】:

    猜你喜欢
    • 2016-04-10
    • 1970-01-01
    • 2019-08-07
    • 1970-01-01
    • 2021-08-24
    • 1970-01-01
    • 1970-01-01
    • 2020-09-22
    • 1970-01-01
    相关资源
    最近更新 更多