电报机器人发送文档(托管服务器上的php)
我在第三方托管服务器上设置了一个带有webhook的电报机器人。 我可以用任何一种,而且效果很好 现在我正试着做我的机器人。如果我理解正确,我需要使用电报机器人发送文档(托管服务器上的php),php,curl,post,file-upload,telegram-bot,Php,Curl,Post,File Upload,Telegram Bot,我在第三方托管服务器上设置了一个带有webhook的电报机器人。 我可以用任何一种,而且效果很好 现在我正试着做我的机器人。如果我理解正确,我需要使用multipart/formdata发出POST请求,并且我正在努力使它在宿主服务器上工作 $url = "https://api.telegram.org/bot<myToken>/sendDocument?chat_id=$<myId>"; $ch = curl_init(); curl_setop
multipart/formdata
发出POST请求,并且我正在努力使它在宿主服务器上工作
$url = "https://api.telegram.org/bot<myToken>/sendDocument?chat_id=$<myId>";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
$post = array( 'document' => '@'.realpath('data.txt'));
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$headers = array();
$headers[] = 'Content-Type: multipart/form-data';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
//DEBUGGING-------------------------------
$info = curl_getinfo($ch);
$buffer = "";
foreach ($info as $key => $value) {
$buffer .= "$key => $value\n";
}
sendMessage($buffer, $<myId>);
//----------------------------------------
$result = curl_exec($ch);
//DEBUGGING-------------------------------
sendMessage($result, $<myId>);
//----------------------------------------
curl_close($ch);
我也试着做一个。。。这似乎比他需要的要难,因为我可以很容易地做到。- 无需设置内容标题
不要尝试自己设置内容类型
标题,让cURL来处理。(它还需要包含用于分隔多部分请求部分的边界值,但您试图指定的值中当然缺少该边界值。)@CBroe Right!我已经删除了这3行,但没有什么改变很多!!当我尝试使用new CURLFile()
时,我非常接近,但我在CURLOPT\u POSTFIELDS
数组中插入了chat\u id
。。。还有一件事,是否需要“文件名”
?没有它也能用很高兴它能用,不需要文件名!我已经从请求中删除了它!如果我想在上传后删除文件,那么在curl\u close()
之后删除是否安全,或者我是否应该等待上传完成的消息?不太确定,我不会冒险在上传后删除文件。如果你真的很好奇,你可以用一个新问题问这个问题。
url => https://api.telegram.org/bot<myToken>/sendDocument?chat_id=$<myId>
content_type =>
http_code => 0
header_size => 0
request_size => 0
filetime => 0
ssl_verify_result => 0
redirect_count => 0
total_time => 0
namelookup_time => 0
connect_time => 0
pretransfer_time => 0
size_upload => 0
size_download => 0
speed_download => 0
speed_upload => 0
download_content_length => -1
upload_content_length => -1
starttransfer_time => 0
redirect_time => 0
redirect_url =>
----------------------------------------------------------------------------
{"ok":false,"error_code":400,"description":"Bad Request: URL host is empty"}