Я не могу отправлять мультимедийные файлы, особенно изображения (jpeg), с помощью Clickatel One API.
Тем не менее, текстовые сообщения доставляются.
Ниже приведен фрагмент кода для отправки файла: (PHP)
$header = [
'Authorization: ' . $clickatel_api_key,
'Content-Type: image/jpeg'
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_URL, 'https://platform.clickatell.com/v1/media?fileName=' . $name . '&to=254712345678');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $file);
curl_setopt($ch, CURLOPT_ENCODING, '');
curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
curl_setopt($ch, CURLOPT_TIMEOUT, 0);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close($ch);
return $result;
Ниже приведен ответ на запрос:
{"error":null,"fileId":"2eee5d0eee4fc4f42943e47c06f12345fdss2ddd.jpg","accepted":true}
Медиафайл не доставляется.
Я думаю, что вызов API, который вы делаете в своем примере, загружает файл и возвращает идентификатор файла. Затем вы должны отправить сообщение (другой HTTP POST), используя этот идентификатор файла, например:
{
"messages": [
{
"channel": "whatsapp",
"to": "2799900001",
"media": {
"fileId": "USE YOUR FILE ID HERE",
"caption": "First Image File"
}
}
]
}
Uploaded media file will be available for message sending for 30 days after uploading
Альтернативой является выполнение одного HTTP-запроса, содержащего встроенные данные файла:
{
"messages": [
{
"channel": "whatsapp",
"to": "2799900001",
"content": "/9j/4AAQSkZJRgABAQEASABIAAD/2w...SDayT2Nha/OIUS3FhlyHzB8ic6ctekf/9k = ",
"media": {
"contentType": "image/png",
"caption": "First Image File"
}
}
]
}
Примеры в документации Clickatell, на которые я ссылаюсь, называются:
Если вы используете метод отправки по ссылке (включая два HTTP-запроса), было бы полезно повторно использовать ваш объект curl ($ch) между всеми HTTP-запросами (даже для других сообщений), чтобы вы повторно использовали свое HTTP-соединение для уменьшения задержки и снижение использования ЦП на вашей стороне.
Отправка ответа изображения в виде сообщения, как показано, сработала
Как сейчас написано, ваш ответ неясен. Пожалуйста, редактировать, чтобы добавить дополнительную информацию, которая поможет другим понять, как это относится к заданному вопросу. Дополнительную информацию о том, как писать хорошие ответы, можно найти в справочном центре.
Спасибо. Это решило проблему. Мне не хватало части для отправки дополнительного почтового запроса с идентификатором файла.