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: trueno 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 Legal: Este artigo destina-se apenas a fins informativos. O Zendesk não oferece suporte nem garantia ao código. Anote qualquer problema que você tenha na seção de comentários ou tente pesquisar por uma solução online.

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.

Powered by Zendesk