Estoy tratando de integrar mati api para el flujo KYC en mi aplicación nativa React. Para obtener el token de autenticación, hice referencia a la documentación a continuación. https://docs.getmati.com/reference/authentication La prueba en cartero funciona bien y obtuvo la respuesta de auth_token. Sin embargo, en el código nativo de React, obtuvo el error 400. Por favor, ayúdame a resolver esto. El fragmento de código:
const myoptions = { method: 'POST', headers: { Accept: 'application/json', 'Content-Type': 'application/x-www-form-urlencoded', Authorization: 'Basic AAAAAAAAAAAAAAAAAAAAAAAAAAA', }, body: new URLSearchParams({grant_type: 'client_credentials'}), }; fetch('https://api.getmati.com/oauth', myoptions) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));el error es:
LOG {"code": 400, "message": "Missing parameter: `grant_type`", "name": "invalid_request", "status": 400, "statusCode": 400}Encontré el error y lo descubrí de la siguiente manera.
const body = new URLSearchParams({grant_type: 'client_credentials'}); const myoptions = { method: 'POST', headers: { Accept: 'application/json', 'Content-Type': 'application/x-www-form-urlencoded', Authorization: 'Basic AAAAAAAAAAAAAAAAAAAAAAAAAAA', }, body: body.toString(), }; fetch('https://api.getmati.com/oauth', myoptions) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));En reaccionar nativo, debemos enviar el cuerpo como una cadena, funciona bien y obtiene la respuesta correcta. Gracias.
De la documentación que mencionó, parece que está aceptando datos de formulario y está enviando parámetros de búsqueda. Prueba esto
const formData = new FormData(); formData.append("grant_type","client_credentials"); const myoptions = { method: 'POST', headers: { Accept: 'application/json', 'Content-Type': 'application/x-www-form-urlencoded', Authorization: 'Basic AAAAAAAAAAAAAAAAAAAAAAAAAAA', }, body: formData, }; fetch('https://api.getmati.com/oauth', myoptions) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));