总是无法使用 PHP 使用电报 API 发送图像



我想创建一个函数来使用 Telegram API(参考 API:https://github.com/mgp25/Telegram-Bot-API/)发送图像,但是当我尝试运行它时,我总是收到这样的错误:

消息:file_get_contents(''):无法打开流:HTTP 请求失败!HTTP/1.1 400 错误请求

这是我的代码[更新]:

<?php
require 'Telegram.php';
$tele = new telegramBot('token');
//$info = $tele->sendMessage('218945828',"wadaw");
$url= 'image/maldini.jpg';
$info = $tele->sendPhoto('chatid',$url);
print_r($info);
?>

错误:

警告:file_get_contents(https://api.telegram.org/bot_token/sendPhoto?chat_id=chat_id&photo=0):无法打开流: php_network_getaddresses: getaddrinfo 失败: 不知道这样的主机。 在 C:\xampp\htdocs\mgp25\Telegram-Bot-API-master\src\Telegram.php 第 465 行

我的代码有什么问题?

你有 SSL 连接和电报吗?如果您没有与电报的SSL连接,则非电报命令将不起作用,但是如果您只能发送一条简单的消息,则没有SSL问题。毕竟,如果除了图像之外一切都正常,请使用此 cURL 代码,除了使用该准备使用的telegramBOT类。如果这不起作用(cURL),那么在您的服务器上读取或查找照片确实存在问题(真实服务器或 xampp 文件夹等......如果是服务器(主机),则必须首先上传,如果是 xampp 图像必须在 true 文件夹中。最好测试图像是否可以访问(例如通过网络浏览器的 http://localhost/image/maldini.jpg?

cURL 用于发送照片的现成代码:

$BOT_TOKEN='1231325:AbXDECcvhir7'; //----YOUR BOT TOKEN
$chat_id=123456 // or '123456' ------Receiver chat id
define('BOTAPI','https://api.telegram.org/bot' . $BOT_TOKEN .'/');
$cfile = new CURLFile(realpath('image/maldini.jpg'), 'image/jpg', 'maldini.jpg'); //first parameter is YOUR IMAGE path
    $data = [
        'chat_id' => $chat_id , 
        'photo' => $cfile
        ];
    $ch = curl_init(BOTAPI.'sendPhoto');
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    $result = curl_exec($ch);
    curl_close($ch);

我认为urlencode('http://127.0.0.1/mgp25/maldini.jpg'); 是问题所在。应使用提供商/公共 IP 地址。或者使用相对路径。

相关内容

  • 没有找到相关文章