Domanda

Come posso inviare una richiesta API da un’app personalizzata installata nel mio account all’API di un altro account e non ricevere il messaggio, l’errore non è un URI proxy.

Risposta

Il comportamento predefinito di client.request consiste nell’inviare la richiesta tramite il livello proxy di Zendesk, un gateway che blocca le richieste HTTP da un account a un altro, determinando che la risposta 403 non è un URI proxy.

Per inviare un client.request all’API di un’altra istanza Zendesk da un’app personalizzata nel tuo account, passa cors: true nell’oggetto opzioni di richiesta. Ciò consente alla richiesta di ignorare il livello proxy di 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 sul lato server

Ogni endpoint API Zendesk implementa la condivisione delle risorse tra le origini (CORS ). Se la richiesta dall’app proviene dal lato client, le risposte CORS hanno esito negativo a meno che non usi OAuth. Se hai bisogno solo del metodo GET, imposta l’ambito del token OAuth per l’accesso in sola lettura a risorse specifiche e implementalo sul lato client.

Se la richiesta dell’app all’altra API Zendesk è di scrivere dati con il metodo PUT o POST, nessuna delle due opzioni non è sicura in quanto espone il token nel traffico di rete. Nella maggior parte dei workflow, puoi usare impostazioni sicure per evitare problemi di sicurezza con il token.

Le impostazioni sicure non funzionano per questo workflow perché richiedono che la richiesta passi attraverso il livello proxy di Zendesk. Se hai bisogno che l’app scriva dati, prendi in considerazione soluzioni lato server in cui la richiesta all’altra API di Zendesk viene rimandata all’app e gestita dal lato server.

Avvertenza: Questo articolo viene fornito solo a scopo didattico. Zendesk non offre alcun supporto o garanzia per il codice. Se riscontri eventuali problemi, lascia un commento o prova a cercare una soluzione online.

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.

Powered by Zendesk