【问题标题】:Issue with Telegram bot developed in PHP用 PHP 开发的 Telegram 机器人的问题
【发布时间】:2016-07-29 02:08:49
【问题描述】:

大约几个月前,我可以使用 5.5 版本从我的机器人路径上传照片。现在我将我的 PHP 升级到 5.6,我不知道为什么,但我不能了。 这是我的代码:

$url = "https://api.telegram.org/bot".Token."/sendPhoto?chat_id=".$chat_id;

        $post_fields = array(
                'photo'     => new CURLFile(realpath("test.png"))
            );

        $ch = curl_init(); 
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
            "Content-Type:multipart/form-data"
        ));
        curl_setopt($ch, CURLOPT_URL, $url); 
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields); 
        $output = curl_exec($ch);

【问题讨论】:

  • 您遇到什么错误?发生什么了?是否显示任何警告?令牌仍然有效吗?请提供更多信息。
  • 经过测试。您的脚本在 php 5.6 上运行没有任何问题。正如 Benedict 所说,提供有关脚本行为和发生错误的更多信息。
  • 真诚地,我没有收到任何错误消息,当我尝试发送照片时,我的机器人只会离线大约一天。是的,令牌仍然有效,因为我的机器人除了那个问题外都能正常工作。
  • 你打印$output了吗?里面有"ok":true ...
  • 我试过了,但是机器人在 sendMessage 之前就离线了,所以它不能打印任何东西。我真的不知道该怎么做,我认为问题不会是FTP服务器中的权限......

标签: php bots telegram telegram-bot


【解决方案1】:

使用我为 CURL 编写的这个函数:

function makeHTTPRequest($method, $types = []){
    $url = 'https://api.telegram.org/bot'.Token.'/'.$method;
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($types));
    $res = curl_exec($ch);
    if (curl_error($ch)){
        var_dump(curl_error($ch));
    } else {
        return json_decode($res);
    }
}

然后在任何你想要的地方调用它:

var_dump(makeHTTPRequest('sendPhoto', [
    'chat_id' => $chat_id,
    'photo' => new CURLFile('test.png')
]));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-09
    • 1970-01-01
    • 2015-11-16
    • 2016-01-20
    • 2022-11-01
    • 2020-10-12
    • 2018-12-05
    相关资源
    最近更新 更多