6
votes

Pourquoi y a-t-il deux formats d'URL différents pour les documents Google Spreadsheet?

Mon application Accède à des documents de tableur sur Google privés pour le compte d'un utilisateur autorisé. Il semble que l'API de Google s'attend à ce que les développeurs demandent d'abord une liste de toutes les documents de tableur à la disposition d'un utilisateur autorisé avant de pouvoir obtenir des clés de tableur particuliers. Je voulais trouver une solution de contournement à cela et, éventuellement, en extrayant la valeur de paramètre de la clé des URL de tableur d'URL qui ressemblent à ceci:

https://docs.google.com/spreadsheet/cccc?key= {Quelque touche longue ici} & usp = drive_web # gid = 0

Il était assez simple pour simplement casser la chaîne pour pointer où je pourrais récupérer la valeur de la clé assez facile sans avoir besoin d'une regex.

Récemment, même si je ne sais pas à quel point les URL sont récentes, je remarque que les feuilles de diffusion de Google Draps récemment créées se présentent dans ce formulaire:

https://docs.google.com/spreadsheets/d/ {une touche longue ici} / Modifier # gid = 0

J'ai également pu extraire la clé de cette chaîne d'URL, mais je suis juste curieux de la différence entre les deux URL:

  1. Quelle est la signification entre les deux URL.
  2. Pourquoi la force d'API de Google est-elle développée pour d'abord obtenir une liste de tous les documents disponibles, lorsqu'un dev pourrait simplement vouloir extraire une clé d'une URL directe vers une feuille de calcul direct Google Drive Doc.

    Merci!


0 commentaires

3 Réponses :


0
votes

Où obtenez-vous l'URL? Vous ne devriez pas compter sur des formats d'URL spécifiques, ceux-ci sont sujets à changement et non destinés à être fiables. Vous devriez pouvoir obtenir juste l'ID en spécifiant le paramètre "champs" dans votre demande. Voir https://developers.google.com/drive/v2/reference/files/ Liste


5 commentaires

Je reçois l'URL de la barre d'adresse du navigateur Web. Je ne veux pas que les utilisateurs devaient creuser tous leurs fichiers pour obtenir les données d'une feuille de calcul unique. Je veux qu'ils ne collent juste une URL dans l'interface utilisateur de mon application. On dirait que c'est la façon la plus directe d'y aller. Encore une fois mes questions: quelle est la signification entre les deux formats? Pourquoi sommes-nous obligés d'obtenir des données de feuille de calcul uniquement après avoir récupéré une liste de documents?


Si vous utilisez une feuille de calcul unique, on dirait que vous devriez peut-être utiliser Appscript et les nouveaux add-ons à lier directement dans la feuille de calcul. Voir développeurs.google.com/apps-script/reference/spreadsheet


Je ne suis pas sûr de comprendre votre suggestion. Je comprends que les scripts d'applications sont exécutés sur les serveurs de Google. Est-il possible d'appeler un script d'application de My JavaScript en cours d'exécution dans une application "Desktop" qui a été autorisée? Puis-je faire appel à un certain nombre de critères d'API?


Je ne sais pas ce que vous essayez d'accomplir, il est donc difficile de dire quelle est la bonne solution ici. Comme je l'ai dit, vous devriez pas dépendre de formats d'URL spécifiques, de sorte que ceux-ci sont sujets à changement sans préavis. Si vous ne vous souciez pas de votre application étant brisée au hasard si elle change, alors allez-y. De meilleures options incluent: L'utilisation de l'un des cueilleurs de fichier fournis pour que l'utilisateur sélectionne un fichier, à l'aide de la capacité de la liste pour donner à l'utilisateur certains à sélectionner à partir de, à l'aide de Appscript pour intégrer un menu dans l'application Spreadsheet.


Merci, je vais chercher à changer l'interface utilisateur de mon application afin que les utilisateurs recherchent pour choisir le DOC au lieu de coller une URL dans un champ.



8
votes

Feuilles de style anciennes

Ils travaillent en ligne uniquement et limitée à environ 400 000 cellules par feuille de calcul. P>

URL de style ancien P>

https://docs.google.com/spreadsheets/d/{some long key here}/edit#gid=0


3 commentaires

Merci d'avoir clarifié la signification B / W les deux URL. Dans la réponse de votre thread de référence référencé, l'auteur fait un nouveau document avec le code, donc bien sûr que l'identifiant est récupérable. Cependant, si tout ce que vous avez est l'URL elle-même? Apparemment, il n'y a pas de meilleure pratique pour extraire une clé de l'URL? J'utilise la vanille simple JavaScript dans mon application.


Une autre façon serait de simplement répertorier tous les feuilles de calcul des utilisateurs. Énumérez les feuilles de calcul par nom. .... Mais je suis d'accord avec Cheryl Simon, extrayant l'identifiant de l'URL est un hack désordonné et difficile à maintenir en tant que solution.


Oui, j'ai fini par la mettre en œuvre comme ça, mais je rencontre maintenant une question lors de la récupération des feuilles de calcul. Lorsque je demande une demande pour obtenir les feuilles de calcul de Google's API me dira que le fichier a été supprimé même quand il n'a pas. Apparemment, c'est un problème connu? Voici une question que j'ai commencé à la suite de la mise en œuvre de la méthode de Cheryl: Stackoverflow.com/questions/23377824/...



0
votes

Cloudward a résolu ceci à travers des extraits de nuages. Voici deux personnes qui peuvent être utiles, il y a beaucoup d'autres à explorer également.

Publier une liste simple de la feuille de Google: https://snippets.cloudward.com/app_listing.espx?template_id=0d367025e8b5f402cd510905cade1d29&account_id = & cat_id = C478885BB325028151AA9060422C67F

Publier Google Doc par ID: https://snippets.cloudward.com/app_listing.espx?template_id=51925e7ed2166d7d83a8c32fa1ee88dd&account_id=

J'espère que cela aide.

Bob


0 commentaires