Пытаюсь собрать телеграм-бота, но проблема связана с изменением функций php из-за более новой версии php 5.6.
Ниже приведен базовый код, который я нашел, с учетом изменений в php 5.6.
#$filePhoto = curl_file_create($filepath, 'image/jpg', 'heInternet'); //**LINE 39**
$filePhoto = new CURLFile($filepath, 'image/jpg', 'heInternet'); //**LINE 40**
//$texto = $_POST['msg'];
$content = array(
'chat_id' => "@BugTheInternet",
'photo' => $filePhoto
);
//curl required to post
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false); // required as of PHP 5.6.0
curl_setopt($ch, CURLOPT_POSTFIELDS, $filePhoto); //**LINE 53**
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: multipart/form-data'));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //fix http://unitstep.net/blog/2009/05/05/using-curl-in-php-to-access-https-ssltls-protected-sites/
// receive server response ...
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec ($ch);
Вот ошибка, которую я получаю:
Устарело: curl_setopt(): использование API @filename для загрузки файлов устарело. Вместо этого используйте класс CURLFile в C:\xampp где-то\somefile.php в строке 53.
Когда я меняю $content на $filePhoto в строке 53. Он запускается, и сервер Telegram отправляет сообщения в формате JSON. Ответ сервера:
"{"ok":false,"error_code":400,"description":"Error: Bad Request: there is no photo in request"}"
Я искал в Интернете часами, находя решения. Кстати, два способа, предложенные для PHP 5.6, которые я использую, находятся в строке 39, 40.
Пожалуйста, помогите мне, если вы сталкивались с этим или с чем-то другим. благодарю вас.
$filePhoto
в CURLOPT_POSTFIELDS, но вместо этого вы должны передать$content
. - person retif   schedule 10.11.2015