Estoy trabajando en la integración de una aplicación de reacción con la API de Zendesk para crear tickets de soporte. Hasta ahora, he completado el flujo del formulario, pero cuando realizo la solicitud a la API de Zendesk, recibo 401. Estoy usando el enfoque api_key para esto. Soy bastante nuevo en Zendesk, si alguien me puede ayudar con eso. Aquí está mi código después de que el usuario haga clic en enviar.
const onSubmit = async () => { try { console.log('setInfo', info) const data = { request: { subject: 'test', comment: { body: 'testdesc' } } } const user = 'test@test.com' const api_token = 'some_api_key' const url = 'https://url.zendesk.com/api/v2/tickets.json' const response = await fetch(url, { method: 'POST', // *GET, POST, PUT, DELETE, etc. mode: 'no-cors', headers: { 'Content-Type': 'application/json', Authorization: api_token, // 'Content-Type': 'application/x-www-form-urlencoded', }, body: JSON.stringify(data), // body data type must match "Content-Type" header }) console.log('respone', response) } catch (error) { console.log('respone error', error) } }
Parece que no está enviando el encabezado de autorización correcto. De acuerdo con la referencia de la API de Zendesk , debe usar el siguiente formato para las credenciales:
{email_address}/token:{api_token}
Ejemplo:
jdoe@example.com/token:6wiIBWbGkBMo1mRDMuVwkw1EPsNkeUj95PIz2akv
Después de codificar en base64 la cadena resultante, agréguela al encabezado de Autorización de la siguiente manera:
Authorization: Basic amRvZUBleGFtcGxlLmNvbS90b2tlbjo2d2lJQldiR2tCTW8xbVJETXVWd2t3MUVQc05rZVVqOTVQSXoyYWt2