Domanda
Come posso inviare una richiesta API da un'app personalizzata installata nel mio account all'API di un altro account senza ricevere l'errore seguente?
l'errore non è un URI proxy
Risposta
Il comportamento predefinito diclient.request
è quello di inviare la richiesta attraverso il livello proxy di Zendesk, per cui la risposta URI 403 non ètrasferibile tramite proxy .
Per inviare una richiesta client all'API di un altro account Zendesk da un'app personalizzata nell'account, supera cors: true
nell'oggetto opzioni della richiesta. In questo modo, la richiesta potrà aggirare il livello proxy di Zendesk, il che impedirà di inviare richieste HTTP da Zendesk a 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);
});
}
Una nota sulle richieste lato client e lato server
Ciascuno dei nostri endpoint API implementa CORS. Pertanto, se la richiesta dall'app ha origine dal lato client, avrà esito negativo con risposte CORS a meno che non venga usato OAuth. Se è necessaria solo la lettura dei dati (GET), definisci l'ambito del token OAuth per l'accesso in sola lettura a risorse specifiche e implementalo sul lato client.
Se l'app invia all'altra API Zendesk una richiesta di scrittura dati (PUT, POST), questa opzione non è sicura in quanto il token è esposto al traffico di rete. Nella maggior parte degli altri flussi di lavoro, è possibile usare impostazioni sicureper evitare di esporre il token.
Tuttavia, le impostazioni di sicurezza non funzionano con questo workflow perché richiedono che la richiesta passi attraverso il livello proxy di Zendesk. Se è necessaria la scrittura dei dati, prendi in considerazione le soluzioni lato server, in cui la richiesta all'altra API Zendesk viene gestita lato server e la risposta viene inviata all'app.
Avvertenza sulla traduzione: questo articolo è stato tradotto usando un software di traduzione automatizzata per fornire una comprensione di base del contenuto. È stato fatto tutto il possibile per fornire una traduzione accurata, tuttavia Zendesk non garantisce l'accuratezza della traduzione.
Per qualsiasi dubbio sull'accuratezza delle informazioni contenute nell'articolo tradotto, fai riferimento alla versione inglese dell'articolo come versione ufficiale.