Le problème:Comment utiliser les jetons d'actualisation avec Google Picker et Google Drive?
J'ai une application sur la plate-forme de script google, qui est destiné à permettre le chargement de Google Drive sans utiliser un compte. La fonctionnalité de téléchargement fonctionne bien, mais j'ai des problèmes avec les téléchargements très longs/gros. J'essaye de résoudre ceci depuis une semaine maintenant, surtout parce que j'ai besoin de tester l'expiration des jetons.
Lorsqu'un utilisateur essaie de télécharger un gros fichier (20/30 Go) sur le serveur, le jeton d'authentification expire Error Screenshot 1, puis j'obtiens cette erreur Error screenshot 2.
Donc ce dont j'ai besoin est d'utiliser un jeton qui expirera dans plus de 5 heures. J'ai essayé d'utiliser un jeton de rafraîchissement mais je me suis retrouvé très confus. J'ai créé le jeton d'actualisation dans OAuth 2.0 Playground.
choses que j'ai essayé:
- passer le jeton de rafraîchissement dans le setOAuthToken. (Rejeté par la fonction)
- Utilisez le jeton d'actualisation pour utiliser setOAuthToken mais il a échoué.
Questions
Puis-je autoriser de façon permanente l'accès à l'application Picker? (puisque c'est toujours le même utilisateur qui accède au lecteur sur le code côté serveur)? Dois-je utiliser un jeton d'actualisation pour obtenir un jeton Auth (Authentification par jeton)?
Code d'origine:
var a = (new google.picker.PickerBuilder)
.addView(t)
.enableFeature(google.picker.Feature.NAV_HIDDEN)
.setOAuthToken("<?= ScriptApp.getOAuthToken(); ?>")
.enableFeature(google.picker.Feature.MULTISELECT_ENABLED)
.hideTitleBar()
.setSize(DIALOG_DIMENSIONS.width - 2, DIALOG_DIMENSIONS.height - 2)
.setCallback(pickerCallback).setOrigin(config.FORM_EMBED_DOMAIN)
.build()
Toute aide sera très appréciée.
Merci beaucoup, je vais essayer les deux approches. –
Bonjour @ponoyyid, merci encore pour votre aide. J'ai essayé d'utiliser vos recommandations pour résoudre mon problème mais je n'ai pas eu de chance. Pouvez-vous expliquer ce qui est "immédiat = vrai"? Je n'ai pas trouvé un moyen de percer dans l'objet Picker le nouveau jeton d'accès. Je suis capable de mettre à jour le jeton, mais comment puis-je mettre à jour sur l'objet Picker s'il est déjà créé/affiché? –
immediate = true provoque l'actualisation sans aucune interface utilisateur. Il n'existe aucune méthode publiée pour mettre à jour le jeton d'un objet Picker créé. Ceci est un défaut de conception. Depuis JavaScript, toutes les propriétés sont accessibles, même si elles sont internes, ma suggestion était de creuser dans le code jusqu'à ce que vous trouviez la propriété interne. Comme je l'ai dit, fugement. – pinoyyid