es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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=&access_token=‘ –form ‘video=@”/path/to/video.mp4″‘

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));

Tags:  , , , ,

Answer

  1. Avatar for 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=&access_token=' --form 'video=@"/path/to/video.mp4"'

    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));
    “`

Comments are closed.