HTTP-запрос к Cloud-Convert не работает - PullRequest
0 голосов
/ 19 января 2020

Я пытаюсь использовать fetch для POST API-вызова Cloud Convert и получаю следующую ошибку:

сообщение: «Указанные данные были недействительными». code: "INVALID_DATA" error: {...} tasks: Array (1) 0: "Поле tasks обязательно."

Вот мой код (в Wix):

export async function convertMp4toMp3(fileUrl, filename) {
    filename = filename.replace(/mp4/gi, "mp3")
    let job = {
        tasks: {
            "import-2": {
                "operation": "import/url",
                "url": fileUrl
            },
            "task-1": {
                "operation": "convert",
                "input_format": "mp4",
                "output_format": "mp3",
                "engine": "ffmpeg",
                "input": [
                    "import-2"
                ],
                "audio_codec": "mp3",
                "audio_qscale": 0
            },
            "export-1": {
                "operation": "export/google-cloud-storage",
                "input": [
                    "task-1"
                ],
                "project_id": "project-id",
                "bucket": "bucket",
                "client_email": "client_emailXXXXXXX",
                "file": filename,
                "private_key": "My Private Key
            }
        }
    }
    let options = {
        "method": "POST",
        "body": job,
        "headers": {
            "Authorization": "Bearer MyApiKey",
            "Content-type": "application/json"
        }
    }
    let response = await fetch("https://api.cloudconvert.com/v2/jobs", options)
    console.log(response.json())
}

Как видите, поле «задачи» заполняется заданиями ...

1 Ответ

1 голос
/ 19 января 2020

API fetch не кодирует автоматически JSON. Попробуйте:

  let options = {
        "method": "POST",
        "body": JSON.stringify(job),
        "headers": {
            "Authorization": "Bearer MyApiKey",
            "Content-type": "application/json"
        }
    }
...