Функция Google Sheets для получения сокращенного URL (от Bit.ly или goo.gl и т. Д.)

9

У меня есть таблица Google, которая создает ссылки Google Analytics. Я хотел бы сократить эти ссылки. Я попробовал пример Bit.ly, но даже их пример не работает.

Как я могу это сделать?

Клей Николс
источник

Ответы:

12

Этот небольшой код позволяет создавать сокращенные URL-адреса с использованием скрипта Google Apps и API URL Shortener.

Предпосылки

В разделе ресурсов в редакторе сценариев (« Инструменты»> «Редактор сценариев» ) выберите «Дополнительные службы Google» и активируйте UrlShortener. введите описание изображения здесь
Затем перейдите в консоль разработчиков Google и выберите URL для API: введите описание изображения здесь
включите API и вставьте код в редактор сценариев. Нажмите кнопку ошибки, чтобы аутентифицировать скрипт

Код

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);
}

Разъяснения

Функция onOpen () создаст пункт меню для выбора, имеющий название Shorten . Каждый раз, когда вы открываете файл, этот пункт меню будет добавляться (если вы находитесь в редакторе сценариев, выберите функцию из выпадающего меню и нажмите кнопку воспроизведения. Это выполнит эту конкретную функцию, и элемент будет добавлен в меню).

Как только меню будет создано, оно покажет пункт меню Go !! , Выберите ячейку или диапазон, который вы хотите сократить, и сценарий создаст сокращенные URL-адреса и добавит их на лист.

Скриншот

перед
введите описание изображения здесь

после
введите описание изображения здесь

Запись

Код предполагает, что после того, как вы укажете ячейку или диапазон для сокращения, результат будет добавлен справа от выбранной ячейки / диапазона ( OFFSET(0,1)).
Если вы просто хотите перезаписать существующий URL-адрес, измените код на следующий: ( OFFSET(0,0)).

пример

Я создал для вас файл примера: создание сокращенных URL

Ссылки

  1. URL-Shortener
  2. Смещение (целое число, целое число)
  3. OnOpen ()
Джейкоб Ян Туинстра
источник
Это замечательно. Возможно ли, чтобы скрипт запускался автоматически, если URL добавлен на лист?
Craig.Pearce
@ Craig.Pearce Как, с помощью форм Google вы имеете в виду?
Джейкоб Ян Туинстра
Нет, я больше думал о том, как слушатель событий, так что, если пользователь помещает URL-адрес в A2, этот скрипт автоматически запускается и помещает сокращенную версию в B2.
Craig.Pearce
Похоже, что это больше не работает, потому что Google удалил службу сокращения URL.
Джим Маккит
8

TinyURL имеет API, который выдает текстовый файл с укороченной ссылкой. Если вы используете функцию ИМПОРТ ДАННЫХ, вы можете получить текст с этой страницы. Вам также необходимо использовать функцию CONCATENATE, чтобы связать URL-адрес вместе.

Структура API tinyurl является http://tinyurl.com/api-create.php?url=YOURLINKHERE

Импорт данные из этой ссылки, очевидно , не идти к действительной ссылке , но это было бы вход: http://tinyurl.com/oegcbsx.

CONCATENATE поместит ваш текст в этом месте.

CONCATENATE для A1 и http://tinyurl.com/api-create.php?url=сгенерирует правильный URL, который вы ищете. ИМПОРТ ДАННЫХ тогда захватит новый короткий URL!

Вот формула! Замените B2 на то, куда вы помещаете свой длинный URL

=IMPORTDATA(CONCATENATE("http://tinyurl.com/api-create.php?url=" & B2))
Джаред
источник
Это должен быть выбранный ответ. Гораздо проще, чем Apps Script, но одинаково эффективно.
Гаурав Раманан
1

О ссылке Bitly http://dev.bitly.com/spreadsheets.html

Вам нужно заменить ячейку A1 на URL, который вы хотите использовать.

Также очень удобно, что они также предоставляют возможность подсчета кликов.

Дейв
источник