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 a mensagem, o erro não é um URI proxyable.
Resposta
O comportamento padrão do client.request é enviar a solicitação pela camada de proxy do Zendesk, um gateway que bloqueia solicitações HTTP de uma conta para outra, o que resulta em que o 403 não é uma resposta URI proxyável.
Para fazer uma solicitação client.request para a API de outra instância do Zendesk a partir de um aplicativo personalizado em sua conta, passe cors: true no objeto de opções de solicitação. Isso permite que a solicitação ignore a camada de proxy do Zendesk.
// 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 versus do lado do servidor
Cada ponto de extremidade da API do Zendesk implementa o Compartilhamento de recursos de origem cruzada (CORS). Se a solicitação do aplicativo for originada do lado do cliente, as respostas do CORS falharão, a menos que use OAuth. Se você precisar apenas do método GET, escope o token OAuth para acesso somente leitura a recursos específicos e implemente-o do lado do cliente.
Se a solicitação do aplicativo para a outra API do Zendesk é escrever dados com o método PUT ou POST, nenhuma das opções é segura, pois expõe o token no tráfego de rede. Na maioria dos fluxos de trabalho, você pode usar as configurações de segurança para evitar problemas de segurança com o token.
As configurações de segurança não funcionam para esse fluxo de trabalho porque exigem que a solicitação passe pela camada de proxy do Zendesk. Se você precisa que o aplicativo escreva dados, considere soluções do lado do servidor em que a solicitação para a API do outro Zendesk é enviada de volta para o aplicativo, gerenciada do lado do servidor.
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.