Quiero utilizar la API de Trustpilot para enviar una invitación a opinar por correo electrónico. Antes de hacer esa llamada, necesito obtener un token de acceso. Estoy siguiendo la documentación de Trustpilot en la función a continuación. Sigo recibiendo este error de Unknown grant_type. De acuerdo con la documentación, se supone que debe configurarse como "contraseña" para obtener el token y no funciona. Probé esta solución pero no me funciona. Parece que no puedo saber qué está causando el error, especialmente porque es muy general.
trustPilot.getAuthToken = async () => { let apiKey = process.env.TRUSTPILOT_API let secrect = process.env.TRUSTPILOT_SECRET let baseEncoded = Buffer.from(`${apiKey}:${secrect}`).toString('base64') console.log(baseEncoded, 'base') let authToken = null try { authToken = await axios({ method: 'POST', url: `https://api.trustpilot.com/v1/oauth/oauth-business-users-for-applications/accesstoken`, headers: { Authorization: 'Basic ' + baseEncoded, 'Content-Type': 'application/x-www-form-urlencoded' }, content: `grant_type=password&username=${process.env.TRUSTPILOT_EMAIL}&password=${process.env.TRUSTPILOT_PASSWORD}`, }) console.log(authToken, 'auth') } catch (error) { console.log(error.response, 'err') throw { code: '404' } } return authToken }Por favor, eche un vistazo a la documentación de axios. Está pasando content: en lugar de data: . La llamada de Axios debería ser así:
authToken = await axios({ method: 'POST', url: `https://api.trustpilot.com/v1/oauth/oauth-business-users-for-applications/accesstoken`, headers: { Authorization: 'Basic ' + baseEncoded, 'Content-Type': 'application/x-www-form-urlencoded' }, data: `grant_type=password&username=${process.env.TRUSTPILOT_EMAIL}&password=${process.env.TRUSTPILOT_PASSWORD}`, })