Frage

Wie kann ich eine API-Anforderung von einer in meinem Konto installierten angepassten App an die API eines anderen Kontos senden und die Nachricht nicht erhalten? Fehler ist keine proxyfähige URI.

Antwort

Standardmäßig sendet client.request die Anfrage über die Proxy-Schicht von Zendesk, ein Gateway, das HTTP-Anfragen von einem Konto an ein anderes blockiert. Die 403 ist keine proxyfähige URI-Antwort.

Um von einer angepassten App in Ihrem Konto aus eine client.request an die API einer anderen Zendesk-Instanz zu senden, übergeben Sie cors: true im Anfrageoptionsobjekt. Dadurch kann die Anforderung die Proxy-Schicht von Zendesk umgehen.

// 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);
        });
  }

Hinweis zu client- und serverseitigen Anfragen

Jeder Zendesk-API-Endpunkt implementiert Cross-Origin Resource Sharing (CORS). Wenn die Anforderung von der App vom Client stammt, schlagen die CORS-Antworten fehl, es sei denn, sie verwendet OAuth. Wenn Sie nur die GET-Methode benötigen, geben Sie das OAuth Token als Lesezugriff auf bestimmte Ressourcen an und implementieren Sie dies clientseitig.

Wenn die App die andere Zendesk-API anfordert, Daten mit der PUT- oder POST-Methode zu schreiben, ist keine der beiden Optionen sicher, da das Token im Netzwerkverkehr offengelegt wird. In den meisten Workflows können Sie sichere Einstellungen verwenden, um Sicherheitsprobleme mit dem Token zu vermeiden.

Sichere Einstellungen funktionieren in diesem Workflow nicht, da sie die Zendesk-Proxyschicht durchlaufen müssen. Wenn Sie die App zum Schreiben von Daten benötigen, sollten Sie serverseitige Lösungen in Betracht ziehen, bei denen die Anfrage an die API des anderen Zendesks zurück an die App gesendet wird, die serverseitig gehandhabt wird.

Haftungsausschluss: Dieser Beitrag dient lediglich zu Demonstrationszwecken. Zendesk bietet keine Unterstützung oder Garantie für den Code. Bitte posten Sie eventuelle Probleme in den Kommentaren oder suchen Sie online nach einer Lösung.

Hinweis zur Übersetzung: Dieser Beitrag wurde mit automatischer Übersetzungssoftware übersetzt, um dem Leser ein grundlegendes Verständnis des Inhalts zu vermitteln. Trotz angemessener Bemühungen, eine akkurate Übersetzung bereitzustellen, kann Zendesk keine Garantie für die Genauigkeit übernehmen.

Sollten in Bezug auf die Genauigkeit der Informationen im übersetzten Beitrag Fragen auftreten, beziehen Sie sich bitte auf die englische Version des Beitrags, die als offizielle Version gilt.

Powered by Zendesk