電報ボットを構築しようとしていますが、問題は、新しい php 5.6 による php 関数の変更に関連しています。
以下は、私が見つけた基本的なコードで、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(): ファイルのアップロードに @filename API を使用することは非推奨です。C:\xampp where\somefile.php の 53 行目で、代わりに CURLFile クラスを使用してください。
53 行目で $content を $filePhoto に変更すると、実行され、Telegram サーバーが JSON でメッセージを送信します。サーバー応答:
"{"ok":false,"error_code":400,"description":"Error: Bad Request: there is no photo in request"}"
私は何時間もインターネットを検索し、解決策を見つけました。ところで、私が使用しているPHP 5.6に対して提案された2つの方法は、39行目と40行目です。
これに遭遇した場合、またはその他の場合は、私を助けてください。ありがとうございました。