Estoy tratando de subir un video a Tiktok usando este punto final:
https://open-api.tiktok.com/share/video/upload/
Siguiendo los documentos oficiales: https://developers.tiktok.com/doc/web-video-kit-with-web
(Después de autenticarse con éxito con Tiktok y obtener un token de acceso utilizando la API del kit de inicio de sesión). Recibo una respuesta que sugiere éxito (con error_code=0 y un share_id no vacío), sin embargo, no se carga nada y la URL de devolución de llamada de mi aplicación Tiktok no parece activarse con ninguna actualización de estado.
Intenté acceder a la API desde varios entornos diferentes: un tiempo de ejecución de Node.js (usando Axios), una solicitud cURL de 2 máquinas diferentes (todas obteniendo el resultado descrito anteriormente) y también desde mi código frontend usando Fetch (este me consiguió un error CORS). Fragmentos de código a continuación.
Apreciaré cualquier ayuda ya que no tengo ideas sobre qué probar a continuación. Además, si hay otros documentos o recursos en línea además del que vinculé que podrían ser útiles, cualquier enlace será excelente.
Nota: Me aseguré de que mis videos de prueba cumplan con las restricciones mencionadas en los documentos.
Mi código Node.js:
const url = `https://open-api.tiktok.com/share/video/upload?open_id=${openId}&access_token=${accessToken}`; const data = new FormData(); data.append('video', fs.createReadStream(path.join(os.tmpdir(), 'test.mp4'))); await axios.post(url, data, { headers: data.getHeaders() });cURL solicitud:
curl --location --request POST 'https://open-api.tiktok.com/share/video/upload?open_id=<open_id>&access_token=<access_token>' --form 'video=@"/path/to/video.mp4"'Carga útil de respuesta (para solicitudes cURL y Node.JS):
{"data":{"err_code":0,"error_code":0,"share_id":"video.7031619168818448385.CGdXCmaC"},"extra":{"error_detail":"","logid":"2021111721133201024513311411A971D3"}}Código de frontend (buscar, obtener una respuesta 307 con la misma URL de Tiktok (/share/video/upload...) en el encabezado de ubicación, lo que genera un error de CORS):
const formData = new FormData(); formData.append('video', selectedFile); const requestOptions = { method: 'POST', body: formData, redirect: 'follow' }; const URL = `https://open-api.tiktok.com/share/video/upload?access_token=${accessToken}&open_id=${openId}`; fetch(URL, requestOptions) .then((response) => response.text()) .then((result) => console.log(result)) .catch((error) => console.log('error', error));Debe descargar la aplicación TikTok y luego publicar el video cargado por su API.
El usuario que activó la carga del video debe recibir una notificación en la aplicación TikTok después de que el video se haya cargado correctamente y el usuario pueda publicar el video en la aplicación.
En caso de que obtenga "Algo salió mal, inténtelo de nuevo más tarde". Probablemente sea el problema de tu región. Deberá probar un vpn y volver a intentarlo.