2016-11-07 1 views
0

voici mon Script->UrlFetchApp (Scripts Google) pour les requêtes HTML avec jeton à Zendesk

var url = "https://mycompany.zendesk.com/api/v2/organizations/1234/tickets.json"; 
var TOKEN = "[email protected]/token:vss0keykeykey"; 
var options = 
{ 
"method" : "GET", 
"contentType" : "application/json", 
"headers" : { 
    "Authorization" : 'Bearer ' + TOKEN 
}, 
}; 

var jsondata = UrlFetchApp.fetch(url,options); 

en ce moment, je reçois un jeton d'accès fourni est expiré, révoqué, malformé ou invalide pour d'autres raisons, mais Si je fais une boucle à partir de la ligne de commande, cela fonctionne bien ...

Répondre

0

Pour autant que je sache, les jetons d'accès ont limited lifetimes ce qui est correct du point de vue de la sécurité. Google fournit des comptes de service permettant les communications entre serveurs. Votre application se prépare à effectuer des appels d'API autorisés en utilisant les informations d'identification du compte de service pour demander un jeton d'accès à partir du serveur d'authentification OAuth 2.0.

Pour plus d'informations, vous pouvez visiter OAuth 2.0 pour serveur d'applications serveur: https://developers.google.com/identity/protocols/OAuth2ServiceAccount

0

Lecture du ZenDesk documentation, votre TOKEN ressemble à l'entrée à ce que vous utilisez dans API authentification par jeton, qui utilise le protocole HTTP de base authentification, mais votre tête d'autorisation comprend le mot Bearer ce qui suggère qu'il est un jeton d'accès OAuth (ce qui ne l'est pas). Jetez un coup d'œil à la documentation et voyez si vous pouvez utiliser l'authentification de base (la documentation énumère quelques restrictions concernant l'authentification à 2 facteurs, relatives à la configuration de votre compte).

Si vous pouvez utiliser l'authentification de base, alors vous devez former votre jeton comme ceci:

// Form the Basic Authentication header - needs Base64 encoding as cUrl would do. 
var TOKEN = Utilities.base64Encode("[email protected]/token:vss0keykeykey"); 

var options = { 
"method" : "GET", 
"contentType" : "application/json", 
"headers" : { 
    // No need for the "Bearer" prefix 
    "Authorization" : TOKEN 
} 
};