Как отправить изображение в everypixel.com с помощью js или php?
Получаю ошибку 403 Forbidden, как можно решить эту проблему
<form action="#" method="post" enctype="multipart/form-data">
<div class="api-kvadrat result">
<input type="file" id="upload" name="upload">
</div>
</div>
<div class="Api-everypixel-p">
Попробуйте предварительно обученные<br> модели Everypixel в действии!
</div>
<input class="button-api" type="submit" name="submit" id="button"></input>
</form>
Есть вот такая условная форма, суть проблемы в том что у меня не получается отправить заголовки авторизации, я получаю постоянно ошибку, на сайте предоставляется client_id и secret_key, как их отправить??, так же в начале документации написано про получение доступа на 1 час через токен, отправив curlom я получаю этот токен и вставляю в код но все равно та же фигня
document.addEventListener("DOMContentLoaded", () => {
btn = document.querySelector("#button");
btn.addEventListener("click", (event)=> {
event.preventDefault();
const file_attach = document.getElementById("upload");
console.log(file_attach);
const forms = document.querySelectorAll("form");
console.log(forms); // формы
const message = {
loading: "Отправка...",
success: "Спасибо. Форма отправлена",
failed: "Что-то пошло не так..."
};
file_attach.addEventListener("change", ()=> {
uploadFile(file_attach.files[0]);
});
const uploadFile = (file) => {
console.log(file.name);
if (!["image/jpeg", "image/png", "image/gif", "image/svg+xml"].includes(file.type)) {
alert("Разрешены только изображения.");
return;
}
if (file.size > 2 * 1024 * 1024) {
alert("Файл должен быть не менее 2мб");
return;
}
};
const fData = new FormData();
fData.append("file_attach", file_attach.files[0]);
try {
const response = fetch('https://api.everypixel.com/v1/keywords?', {
'headers': {
"authorization": "Bearer ki1dq5htHiUBOADaTmX4lKNtKPrlO2",
"cache-control": "no-cache",
"content-type": "multipart/form-data; boundary=----WebKitFormBoundary92CbLHFeuOVMQpXq",
},
method: 'POST',
body: fData,
mode: "no-cors",
credentials: "include",
});
const result = response.json();
console.log('Успех:', JSON.stringify(result));
} catch(error) {
}
});
});
Если есть решение так же в php буду признателен если напишите как отправить файл через curl, я пытался но ничего не получается))))
В документации есть пример с помощью php и этот код решает проблему свыше, я получаю доступ но появляется другая для меня проблема я не могу отправить файл локально, на прямую по url все хорошо, вот и вся проблема, я убил достаточно времени на решение проблемы и ничего не получилось, перепробовал многие варианты и методы возможно я что то не понимаю и делаю не то)))
$authorization = "<your-client-id>" . ":" . "<your-client-secret>";
$url = "https://api.everypixel.com/v1/keywords?url=http://image.everypixel.com/2014.12/67439828186edc79b9be81a4dedea8b03c09a12825b_b.jpg&num_keywords=10";
$curl = curl_init();
curl_setopt($curl, CURLOPT_USERPWD, $authorization);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($curl);
curl_close($curl);
$json = json_decode($data);