始终无法使用PHP使用电报API发送图像

始终无法使用PHP使用电报API发送图像,php,file,telegram-bot,Php,File,Telegram Bot,我想使用Telegram API(参考API:)创建一个函数来发送图像,但当我尝试运行此函数时,总是会出现如下错误: 消息:文件获取内容(“”):无法打开流:HTTP请求失败!HTTP/1.1400错误请求 这是我的代码[更新]: <?php require 'Telegram.php'; $tele = new telegramBot('token'); //$info = $tele->sendMessage('218945828',"wadaw"); $url= 'imag

我想使用Telegram API(参考API:)创建一个函数来发送图像,但当我尝试运行此函数时,总是会出现如下错误:

消息:文件获取内容(“”):无法打开流:HTTP请求失败!HTTP/1.1400错误请求

这是我的代码[更新]:

<?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);

?>

错误:

警告:文件\u get\u contents():无法打开流:php\u network\u getaddresses:getaddrinfo失败:没有已知的此类主机。在第465行的C:\xampp\htdocs\mgp25\Telegram Bot API master\src\Telegram.php中


我的代码怎么了?

我认为urlencode(“”);这就是问题所在。您应该使用您的提供商/公共IP地址。或者使用相对路径。

我认为urlencode(“”);这就是问题所在。您应该使用您的提供商/公共IP地址。或者使用相对路径。

您是否有与电报的SSL连接?如果您没有与电报的SSL连接,非电报命令将不起作用,但如果您只发送一条简单的消息,那么就没有SSL问题。 毕竟,如果一切正常,除了图像,使用这个cURL代码,除了使用ready-to-use
telegramBOT
类。 如果这不起作用(cURL),那么从服务器(realserver或xampp文件夹等)读取或查找照片时确实会出现问题 如果是服务器(主机),则必须首先上载,如果是xampp,则映像必须位于true文件夹中。最好测试图像是否可访问(例如,通过webbrowser

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);

您是否有与电报的SSL连接?如果您没有与电报的SSL连接,非电报命令将不起作用,但如果您只发送一条简单的消息,则没有SSL问题。 毕竟,如果一切正常,除了图像,使用这个cURL代码,除了使用ready-to-use
telegramBOT
类。 如果这不起作用(cURL),那么从服务器(realserver或xampp文件夹等)读取或查找照片时确实会出现问题 如果是服务器(主机),则必须首先上载,如果是xampp,则映像必须位于true文件夹中。最好测试映像是否可访问(例如,通过webbrowser

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);

你好,朋友们。我已经更新了代码并收到了如上所述的错误通知。你好,朋友们。我已经更新了代码并收到了如上所述的错误通知。我认为这是从我的xampp服务器上读取或查找照片的问题。我已经复制粘贴了你的代码,但仍然无法工作。你有什么建议吗?我的代码已经过完整的测试,并且工作正常(除非您必须使用自己的令牌和聊天id以及可访问的图像路径)。问题:图像可以通过web浏览器访问吗?如果可以,那么您应该调整您的代码。使用您的地址,并更正任何输入错误。@IIMNURDIANSYAH第7行您不能使用
http://
链接格式。使用
..realpath('image/maldini.jpg')),….
相反。'realpath'函数也是大小写sansetive或不敏感的,因为它运行的平台不同,所以最好在文件名和路径中使用类似的大小写字符。其次,我说在WEB浏览器中检查该文件(chrome、firefox、IE等)查看文件是否可访问?是否
http://localhost/image/maldini.jpg
link显示来自firefox的图像(例如)?我也很高兴成为朋友。嗨,先生,滴答声。你能再帮我一次吗?我在codeigniter中实现sendimage功能时没有什么问题。我在这里创建了新线程:非常感谢:)我认为这是在我的xampp服务器上读取或查找照片时出现的问题。我已经复制粘贴了你的代码,但仍然无法正常工作。你有什么建议吗?我的代码经过了全面测试,工作正常(除了你必须使用自己的令牌、聊天id和可访问的图像路径)。问题:是否可以通过web浏览器访问图像?如果可以,则您应该调整代码。使用您的地址,并更正任何键入。@IIMNURDIANSYAH在第7行您不能使用
http://
链接格式。使用
..realpath('image/maldini.jpg')),….
相反。'realpath'函数也是大小写sansetive或不敏感的,因为它运行的平台不同,所以最好在文件名和路径中使用类似的大小写字符。其次,我说在WEB浏览器中检查该文件(chrome、firefox、IE等)查看文件是否可访问?是否
http://localhost/image/maldini.jpg
link显示来自firefox的图像(例如)?我也很高兴成为朋友。嗨,先生,滴答声。你能再帮我一次吗?我在codeigniter中实现sendimage功能时没有什么问题。我在这里创建了新线程:非常感谢:)