Fonction Google Sheets pour obtenir une URL raccourcie (de Bit.ly ou goo.gl etc.)


Réponses:


12

Ce petit code permet de créer des URL raccourcies, avec l'utilisation de Google Apps Script et de l'API URL Shortener.

Conditions préalables

Sous les ressources de l'éditeur de script ( Outils> Éditeur de script ), sélectionnez les services Google avancés et activez UrlShortener: entrez la description de l'image ici
accédez ensuite à la Google Developers Console et sélectionnez l'URL de l'API: entrez la description de l'image ici
activez l'API et collez le code dans l'éditeur de script. Appuyez sur le bouton de bogue pour authentifier le script

Code

function onOpen() {
  SpreadsheetApp.getUi()
    .createMenu("Shorten")
    .addItem("Go !!","rangeShort")
    .addToUi()  
}

function rangeShort() {
  var range = SpreadsheetApp.getActiveRange(), data = range.getValues();
  var output = [];
  for(var i = 0, iLen = data.length; i < iLen; i++) {
    var url = UrlShortener.Url.insert({longUrl: data[i][0]});
    output.push([url.id]);
  }
  range.offset(0,1).setValues(output);
}

Expliqué

La fonction onOpen () créera un élément de menu à sélectionner, ayant le nom Raccourcir . Chaque fois que vous ouvrez le fichier, cet élément de menu sera ajouté (si vous êtes dans l'éditeur de script, sélectionnez la fonction dans le menu déroulant et appuyez sur le bouton de lecture. Cela exécutera cette fonction particulière et l'élément sera ajouté à le menu).

Une fois le menu créé, il affichera l'élément de menu Go !! . Sélectionnez la cellule ou la plage que vous souhaitez raccourcir et le script créera les URL raccourcies et les ajoutera à la feuille.

Capture d'écran

avant
entrez la description de l'image ici

après
entrez la description de l'image ici

Remarque

Le code suppose que, une fois que vous avez sélectionné la cellule ou la plage à raccourcir, le résultat sera ajouté à droite de la cellule / plage sélectionnée ( OFFSET(0,1)).
Si vous souhaitez simplement remplacer l'URL existante, changez le code en ceci: ( OFFSET(0,0)).

Exemple

J'ai créé un exemple de fichier pour vous: créer des URL raccourcies

Références

  1. raccourcisseur d'url
  2. offset (Integer, Integer)
  3. onOpen ()

C'est bien. Est-il possible que le script s'exécute automatiquement si une URL est ajoutée à la feuille?
Craig.Pearce

@ Craig.Pearce Comme, via un Google Forms, vous voulez dire?
Jacob Jan Tuinstra

Non, je pensais plus dans le sens d'un écouteur d'événements afin que si l'utilisateur place une URL dans A2, ce script s'exécute automatiquement et place la version raccourcie dans B2.
Craig.Pearce

Il semble que cela ne fonctionne plus, car Google a supprimé le service de raccourcissement d'URL.
Jim McKeeth

8

TinyURL possède une API qui crache un fichier texte avec le lien raccourci. Si vous utilisez la fonction IMPORT DATA, vous pouvez saisir le texte de cette page. Vous devez également utiliser la fonction CONCATENER pour enchaîner l'URL.

La structure de l'API tinyurl est http://tinyurl.com/api-create.php?url=YOURLINKHERE

Importer des données de ce lien ne serait évidemment pas aller à un lien valide mais amont se heurterait: http://tinyurl.com/oegcbsx.

CONCATENATE mettra votre texte à cet endroit.

CONCATENER A1 et http://tinyurl.com/api-create.php?url=générerait l'URL correcte que vous recherchez. L'IMPORTATION DES DONNÉES récupérera alors la nouvelle URL courte!

Voici la formule! Remplacez B2 par l'endroit où vous placez votre longue URL

=IMPORTDATA(CONCATENATE("http://tinyurl.com/api-create.php?url=" & B2))

Ce devrait être la réponse choisie. Beaucoup plus simple que Apps Script mais tout aussi efficace.
Gaurav Ramanan

1

À propos du lien Bitly http://dev.bitly.com/spreadsheets.html

Vous devez remplacer la cellule A1 par l'URL que vous souhaitez utiliser.

Il est également très pratique qu'ils fournissent également un moyen de récupérer le nombre de clics.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.