Pregunta
¿Cómo puedo hacer una solicitud de API desde una aplicación personalizada instalada en mi cuenta a la API de otra cuenta y no recibir el error a continuación?
error is not a proxyable URI
Respuesta
El comportamiento predeterminado declient.request
es enviar la solicitud a través de la capa de proxy de Zendesk, lo que hace que el error 403 no sea una respuesta de URI con capacidadde proxy.
Para hacer un client.request a la API de otra cuenta de Zendesk desde una aplicación personalizada en su cuenta, pase cors: true
en el objeto de opciones de solicitud. Si lo hace, la solicitud podrá omitir la capa de proxy de Zendesk, lo que evita que se hagan solicitudes HTTP de una cuenta de Zendesk a otra.
// make a request from a custom app in one Zendesk to the API of another Zendesk
function newRequest(){
var options = {
url: 'https://subdomain.zendesk.com/api/v2/....',
headers: { "Authorization": "Bearer OAUTH_TOKEN"},
type: 'POST',
data: JSON.stringify({my:"json", values:"go here"}),
contentType: "application/json",
cors: true
}
client.request(options).then(
function(response) {
console.log(response);
});
}
Una nota sobre las solicitudes del lado del cliente y las del lado del servidor
Cada uno de nuestros extremos de API implementa CORS. Por lo tanto, si la solicitud desde la aplicación se origina del lado del cliente, fallará con respuestas CORS a menos que se use OAuth. Si solo se requiere la lectura de datos (GET), establezca el alcance del token de OAuth para que proporcione acceso de solo lectura a recursos específicos e implemente este lado del cliente.
Si la solicitud de la aplicación a la otra API de Zendesk escribirá datos (PUT, POST), esta no es una opción segura ya que el token está expuesto en el tráfico de la red. En la mayoría de los otros flujos de trabajo, se puede usar una configuración segurapara evitar exponer el token.
Sin embargo, la configuración segura no funciona para este flujo de trabajo porque requiere que la solicitud pase por la capa de proxy de Zendesk. Si es necesario escribir datos, considere las soluciones del lado del servidor, en las que la solicitud a la API de la otra cuenta de Zendesk se maneja del lado del servidor y la respuesta se envía de regreso a la aplicación.
Descargo de responsabilidad de la traducción: Este artículo ha sido traducido usando software de traducción automática para proporcionar una idea básica del contenido. Se han realizado esfuerzos razonables para proporcionar una traducción exacta, sin embargo, Zendesk no garantiza la exactitud de la traducción.
Si surge alguna pregunta relacionada con la exactitud de la información incluida en el artículo traducido, consulte la versión en inglés del artículo, que es la versión oficial.