Frage
Wie kann ich eine API-Anfrage von einer angepassten App, die in meinem Konto installiert ist, an die API eines anderen Kontos senden, ohne dass die folgende Fehlermeldung angezeigt wird?
error ist kein proxyfähiger URI
Antwort
Das Standardverhalten vonclient.request
besteht darin, die Anfrage über die Proxy-Schicht von Zendesk zu senden, was dazu führt, dass 403 is not a proxyable URI response.
Um eine client.request von einer angepassten App in Ihrem Konto an die API eines anderen Zendesk-Kontos zu senden, gehen Sie zucors: true
im Anfrageoptionsobjekt. Auf diese Weise kann die Anfrage die Proxy-Schicht von Zendesk umgehen, die verhindert, dass HTTP-Anfragen von einem Zendesk an einen anderen gesendet werden.
// 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 clientseitigen und serverseitigen Anfragen
Jeder unserer API-Endpunkte implementiert CORS. Wenn die Anfrage von der App daher clientseitig stammt, schlägt sie mit CORS-Antworten fehl, es sei denn , OAuth wird verwendet. Wenn nur das Lesen von Daten (GET) erforderlich ist, sollten Sie das OAuth-Token auf schreibgeschützten Zugriff auf bestimmte Ressourcen beschränken und clientseitig implementieren.
Wenn die App-Anforderung an die andere Zendesk-API schreibende Daten enthält (PUT, POST), ist dies keine sichere Option, da das Token im Netzwerkverkehr preisgegeben wird. In den meisten anderen Workflows können sichere Einstellungen verwendet werden, um die Offenlegung des Tokens zu verhindern.
Sichere Einstellungen funktionieren bei diesem Workflow jedoch nicht, da sie erfordern, dass die Anfrage über die Proxy-Ebene von Zendesk gesendet wird. Wenn Daten geschrieben werden müssen, ziehen Sie serverseitige Lösungen in Betracht, bei denen die Anfrage an die andere Zendesk-API serverseitig verarbeitet und die Antwort an die App zurückgesendet wird.
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.