2014-07-22 4 views
0

Je souhaite me connecter à l'API google cloud à partir du script GAS. La difficulté que j'ai est que j'ai reçu le code Oauth de la console API pour mon script GAS, qui ne fonctionne qu'une seule fois et pas tous les jours. La deuxième fois que je lance le script en utilisant le même code Oauth cela donne une erreur msg : "code 401 retourné"Code Google Oauth 2.0 - Obtenir les informations d'identification Fixed Oauth

Exemple de script:

var url = "https://www.googleapis.com/sql/v1beta3/projects/XXXXXXX/instances/XXXXXXXX/operations/XXXXXXXXXXX"; 
    var headers = {"Accept":"application/json", 
       "Content-Type":"application/json", 
       "Authorization":"Bearer XXXXXXXXX" 
        }; 
    var options = {"method":"GET", 
       "headers": headers, 
       }; 
    var response = UrlFetchApp.fetch(url,options); 
    Logger.log(response); 

la capture d'écran donne l'emplacement d'où je reçois ma clé unique fr OAuth.

https://drive.google.com/a/ssomens.com/?tab=mo#folders/0B_f0d7mdbV_UYWh4cDBEdndSZE0

Où obtenir les clés OAuth correctes, de sorte que je pas besoin de continuer à donner de nouveaux jetons tous les jours, je besoin d'un jeton fixe tel que mon script sera exécuté par jour w/o toutes les questions. J'ai vérifié beaucoup de documentation de SITES nd, bt aucun usage.

Plz toute aide sera la bienvenue, je suis coincé dans cette dernière semaine.

Thnks à l'avance.

Répondre

0

Oauth2 est un peu plus compliqué que juste un jeton que vous pouvez mettre dans votre en-tête à chaque fois. Il existe un flux en plusieurs étapes dans lequel vous envoyez l'utilisateur au service de Google pour récupérer un jeton que vous pouvez ensuite envoyer dans les appels d'API, ce qui vous permet d'effectuer des appels au nom de cet utilisateur. Faire ce genre d'appel OAuth à partir de GAS est documenté au https://developers.google.com/apps-script/guides/services/external#making_requests_to_services_with_oauth. Une alternative consiste à créer un compte de service ayant accès à votre instance Cloud SQL, enregistrer des informations d'identification dans votre application, puis les utiliser. Il semble que le faire à partir du GAZ est difficile, car vous devrez implémenter le flux oauth lui-même. Voir https://developers.google.com/accounts/docs/OAuth2#serviceaccount.