Alguien podría ayudarme, estoy tratando de enviar una foto y un pie de foto a un grupo, ¡pero no funciona! Me gustaría enviar la foto que recibo como base64 y enviarla a una API de grupo de Facebook.
¿Que estoy haciendo? Obtuve el base64, luego lo convertí en un búfer y lo escribo en un disco local, luego lo leí en un formulario de datos. Cargo los datos en un formulario de esta manera =>
const form = new FormData(); const fileContent = Buffer.from(url as any, 'base64'); fs.writeFile('../tmp', fileContent, (err) => { if (err) return console.log(err) }) form.append('groupId', groupId) form.append('caption', caption) form.append('image ', fs.createReadStream('../tmp'))A continuación se muestran las configuraciones y solicitudes de axios.
await client.post(`${config.facebook.BASE_URL}/${groupId}/photos`, form, { headers: { ...form.getHeaders(), Authorization: `OAuth ${config.facebook.token}`, 'content-type': 'multipart/form-data', file_type: "image/jpeg", } })Nota: De esta manera obtuve el Error: la solicitud falló con el código de estado 500
Ya resolví esto aunque cambié la forma en que me llegaba el archivo, en vez de recibir la imagen en base64 recibo una url firmada de google storage, y en el form.append, es necesario pasar el nombre y la extensión del archivo, así => form.append('fuente', imagen, 'archivo.jpg'); por supuesto, junto con los otros parámetros y configuraciones de axios