Seguí la documentación aquí https://developers.tiktok.com/doc/web-video-kit-with-web para iniciar sesión con el kit de inicio de sesión y luego obtuve con éxito access_token y open_id para una cuenta.
Ahora subí un video siguiendo las instrucciones en la documentación de la siguiente manera desde un servidor ExpressJS:
const FormData = require('form-data'); const got = require('got'); const axios = require('axios'); //Video Upload Function async function uploadVideoToTikTok(){ let tikTokAccessToken = //Retrieved from database; let openId = //Retrieved from database; let shareUrl = `https://open-api.tiktok.com/share/video/upload/?open_id=${openId}&access_token=${tikTokAccessToken}`; let video = got.stream(mediaUrl); //Media Url is similar to https://firebasestorage.com/adadadadadadad.mp4 let tikTokShareform = new FormData(); tikTokShareform.append("video", video); try { let { data } = await axios.post(shareUrl, tikTokShareform); console.log(`TikTok Upload Result=${JSON.stringify(data, null, 2)}`); } catch (e) { console.log(`TikTok Video Upload Error`); console.log(e); } }Pero la respuesta que sigo recibiendo es
'Solicitud incorrecta'
No se me proporcionó más información para saber el motivo de la solicitud incorrecta.
También noté que la documentación no proporcionaba ninguna información sobre cómo proporcionar una descripción o un título para el video.
Cualquier idea sobre cómo puedo resolver esto será realmente apreciada.
Gracias
Probablemente el problema se debió a que faltaba el encabezado Content-Type en su solicitud HTTP POST, debería intentar algo como:
let { data } = await axios.post( shareUrl, { headers: { "Content-Type": "multipart/form-data", }, }, tikTokShareform, );O mejor:
let { data } = await axios.post( shareUrl, { headers: tikTokShareform.getHeaders(), }, tikTokShareform, );