Question

Comment effectuer une demande API à partir d’une application personnalisée installée dans mon compte vers l’API d’un autre compte et ne pas recevoir le message, error n’est pas une URI proxy.

Réponse

Le comportement par défaut de client.request est d’envoyer la demande via la couche proxy de Zendesk, une passerelle qui bloque les demandes HTTP d’un compte à un autre, qui se traduit par 403 n’est pas une réponse d’URI proxy.

Pour envoyer une demande client à l’API d’une autre instance Zendesk à partir d’une application personnalisée dans votre compte, transférez cors: true dans l’objet d’options de la demande. Cela permet à la demande de contourner la couche proxy de 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);
        });
  }

Remarque concernant les demandes côté client par rapport aux demandes côté serveur

Chaque point de terminaison d’API Zendesk implémente le partage de ressources d’origines multiples (CORS). Si la demande de l’application provient du côté du client, les réponses CORS échouent sauf si elle utilise OAuth. Si vous n’avez besoin que de la méthode GET, configurez le token OAuth pour un accès en lecture seule à des ressources spécifiques et implémentez-le côté client.

Si la demande de l’application à l’autre API Zendesk est d’écrire les données avec la méthode PUT ou POST, ces deux options ne sont pas sécurisées, car elles exposent le token dans le trafic réseau. Dans la plupart des workflows, vous pouvez utiliser des paramètres sécurisés pour éviter les problèmes de sécurité liés au token.

Les paramètres sécurisés ne fonctionnent pas pour ce workflow car ils exigent que la demande passe par la couche proxy de Zendesk. Si vous avez besoin que l’application écrive des données, envisagez des solutions côté serveur dans lesquelles la demande à l’API Zendesk est renvoyée à l’application et traitée côté serveur.

Clause de non-responsabilité : Cet article est fourni à titre informatif uniquement. Zendesk ne fournit pas l’assistance pour le code et ne le garantit pas. Si vous rencontrez des problèmes, publiez-en la description dans la section commentaires ou essayez de trouver une solution en ligne.

Traduction - exonération : cet article a été traduit par un logiciel de traduction automatisée pour permettre une compréhension élémentaire de son contenu. Des efforts raisonnables ont été faits pour fournir une traduction correcte, mais Zendesk ne garantit pas l’exactitude de la traduction.

Si vous avez des questions quant à l’exactitude des informations contenues dans l’article traduit, consultez la version anglaise de l’article, qui représente la version officielle.

Réalisé par Zendesk