在函数输入$ files = $ _FILES
中不要得到Telegram想要的东西。
它说:" {" ok":false," error_code":400," description":" Bad Request:group发送失败"}"。 HIELPLEAS!
bool
答案 0 :(得分:0)
您应该根据文件名称命名文件并将文件附加到请求中。所以改变你的代码:
function sendMediaGroup($files)
{
$url = "https://api.telegram.org/bot" . $this->token . "/" . __FUNCTION__;
$media = [];
$ch = curl_init();
$type = "photo";
$caption = "";
$parameters = array();
foreach ($files as $file)
{
$media[] = [
'type' => $type,
'media' => "attach://" . $file['tmp_name'],
'caption' => $caption
];
$parameters[] = [
$file['tmp_name'] => $file
];
}
$disable_notification = false;
$reply_to_message_id = null;
$parameters[] = [
'chat_id' => $this->chat_id,
'media' => json_encode($media),
'disable_notification' => $disable_notification,
'reply_to_message_id' => $reply_to_message_id,
];
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type:multipart/form-data"));
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $parameters);
return $output = curl_exec($ch);
}
答案 1 :(得分:0)
为了使Telegram通过Internet中的图片URL 创建媒体组,您必须以media
属性值传递的文件链接可以被Telegram的服务器访问。有时情况并非如此,sendMediaGroup
API调用失败,并显示神秘错误消息Bad Request: group send failed
。在这种情况下,您可以尝试另一种发送照片的方法,例如使用sendMessage方法在text
字段中输入,或转到@webpagebot
并将其链接发送给他-该文件将更新该链接的预览,并且您可以将其发送到媒体组。
主持人注意:该答案并非100%针对原始问题,但在使用标题中的单词进行搜索时,该问题的链接在前十个弹出。
答案 2 :(得分:0)
如果要设置媒体的URL,则URL应该在:80或:443端口上工作。例如:https:examplesite.com/image1.jpg正常,https:examplesite.com:8443 / image1.jpg不好!