Pergunta
Como posso fazer uma solicitação de API de um aplicativo personalizado instalado em minha conta para a API de outra conta e não receber o erro abaixo?
error não é um URI proxy
Resposta
O comportamento padrão declient.request
é enviar a solicitação pela camada proxy do Zendesk, resultando em 403 não é uma resposta de URI proxy.
Para fazer uma cliente.request para a API de outra conta do Zendesk de um aplicativo personalizado em sua conta, passe cors: true
no objeto de opções de solicitação. Fazer isso permitirá que a solicitação ignore a camada proxy do Zendesk, o que evita a realização de solicitações HTTP de um Zendesk para outro.
// 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);
});
}
Uma observação sobre solicitações do lado do cliente em relação às solicitações do lado do servidor
Cada um de nossos pontos de extremidade da API implementa CORS. Portanto, se a solicitação do aplicativo vir do lado do cliente, ela falhará com as respostas do CORS, a menos que o OAuth seja usado. Se apenas a leitura de dados (GET) for obrigatória, avalie o token de OAuth para acesso somente leitura a recursos específicos e implemente esse lado do cliente.
Se a solicitação do aplicativo para a outra API do Zendesk for de gravação de dados (PUT, POST), essa não é uma opção segura, pois o token está exposto no tráfego de rede. Na maioria dos outros fluxos de trabalho, as configurações de segurançapodem ser usadas para evitar a divulgação do token.
No entanto, as configurações de segurança não funcionam para esse fluxo de trabalho porque elas exigem que a solicitação passe pela camada proxy do Zendesk. Se a criação de dados for obrigatória, considere soluções do lado do servidor, em que a solicitação para a API da outro Zendesk é gerenciada pelo lado do servidor e a resposta é enviada para o aplicativo.
Aviso sobre a tradução: este artigo foi traduzido por um software de tradução automática para oferecer a você uma compreensão básica do conteúdo. Medidas razoáveis foram tomadas para fornecer uma tradução precisa, no entanto, a Zendesk não garante a precisão da tradução.
Em caso de dúvidas relacionadas à precisão das informações contidas no artigo traduzido, consulte a versão oficial do artigo em inglês.