No se pueden publicar videos en Tiktok utilizando la API de Web Video Kit.
Estoy intentando subir un video a Tiktok utilizando este endpoint:
https://open-api.tiktok.com/share/video/upload/
Siguiendo la documentación oficial:
https://developers.tiktok.com/doc/web-video-kit-with-web
(Después de autenticarse correctamente con Tiktok y obtener un token de acceso utilizando la API Login Kit).
Recibo una respuesta que sugiere éxito (con errorcode = 0 y un shareid no vacío), sin embargo, nada se carga y no parece que se active la URL de callback de mi aplicación Tiktok con ninguna actualización de estado.
He intentado llamar a la API desde varios entornos diferentes, un tiempo de ejecución de Node.js (usando Axios), una solicitud cURL desde 2 máquinas diferentes (todas obteniendo el resultado descrito anteriormente) y también desde mi código frontend usando Fetch (este último me dio un error CORS). Fragmentos de código a continuación.
Agradeceré cualquier ayuda ya que estoy sin ideas sobre qué probar a continuación. Además, si hay algún otro documento o recursos en línea además del que enlazado que podrían ser útiles, cualquier enlace a tales será genial.
Nota: aseguré que mis videos de prueba cumplan con las restricciones mencionadas en la documentación.
Mi código de 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()
});
Solicitud cURL:
curl –location –request POST ‘https://open-api.tiktok.com/share/video/upload?open_id=
Carga 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 frontend (Fetch, obteniendo una respuesta 307 con la misma URL de Tiktok (/share/video/upload…) en el encabezado de ubicación, lo que resulta en un error 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));
davy.ai
Estoy intentando cargar un vídeo en Tiktok usando este endpoint:
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 autenticarme con éxito en Tiktok y obtener un token de acceso usando la API de Login Kit).
Estoy obteniendo una respuesta que sugiere éxito (con el código de error0 y un id de compartir no vacío), sin embargo, nada es cargado y la URL de llamada de mi aplicación de Tiktok no parece estar recibiendo ninguna actualización de estado.
He intentado usar la API desde varios entornos diferentes – un entorno de ejecución de Node.js (usando Axios), una solicitud cURL desde 2 máquinas diferentes (todas obteniendo el resultado descrito anteriormente) y también desde mi código frontend usando Fetch (este último me dio un error CORS). A continuación se presentan fragmentos de código.
Agradeceré cualquier ayuda ya que me quedé sin ideas de lo que intentar a continuación. Además, si existen otros documentos u recursos en línea además del que enlazé que puedan ser útiles, se agradecerán mucho los enlaces.
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()
});
Solicitud cURL:
curl --location --request POST 'https://open-api.tiktok.com/share/video/upload?open_id=
Carga 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 frontend (Fetch, obteniendo una respuesta 307 con la misma URL de Tiktok (/share/video/upload…) en la cabecera de Ubicación, lo que resulta en un error 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));
“`