Google Sheets Advanced Google Services URL Shortener 403 Ошибка: запрещено - PullRequest
0 голосов
/ 07 июня 2018

Я пытаюсь создать небольшое приложение в листе Google для сортировки URL-адресов в моей личной учетной записи Google.Я использую следующий код, который я нашел здесь: Функция Google Sheets для получения сокращенного URL (из Bit.ly или goo.gl и т. Д.)

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]});
    var url = UrlShortener.Url.insert({longUrl: 'www.google.com'});
    output.push([url.id]);
  }
  range.offset(0,1).setValues(output);
}

Я создал новыйGoogle Cloud Project и включили API сокращения URL-адресов в проекте и на листе Google.Проблема в том, что когда я пытаюсь запустить код, я получаю ошибку в строке: var url = UrlShortener.Url.insert({longUrl: 'www.google.com'});

ошибка 403, сообщение: запрещено

при попыткевыполнить функцию rangeShort ().Я понятия не имею, как это исправить.Любые идеи будут наиболее ценными!Спасибо!

Ответы [ 2 ]

0 голосов
/ 07 июня 2018

Как оказалось, как упоминал Рубен, Google отошел от своего сокращателя URL .Итак, после долгих исследований и тестирования вот решение:

Шаг 1

Перенесите Google Cloud Project в Firebase или создайте новый проект Firebase.См. Шаги здесь

Шаг 2

Создайте фиктивный проект, чтобы создать базовый URL для сокращения.См. это видео на YouTube

Шаг 3

Получите ключ Web API от вашего нового проекта Firebase (не только что созданное вами приложение)

Шаг 4

Проверьте левое боковое меню на экране и перейдите к Grow-> Dynamic Links.Вы должны увидеть новое приложение, которое вы создали, и URL в верхней части приложения.Это станет основой для новых сокращенных URL-адресов.

Шаг 5

Создайте код в Google Apps Script внутри построителя кода из Google Sheets.Вот код, который работал для меня (я передал URL в эту функцию) (Этот код основан на найденном ответе здесь ):

function api_call(url){
  var req='https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=[YOUR PROJECT WEB API KEY FROM STEP 3]';
  var formData = {
    "longDynamicLink": "[YOUR APPLICATION URL BASE FROM STEP 4]?link=" + url,
    "suffix" : {
      "option" : "UNGUESSABLE" 
    }
  };
  var options = {
    'method': 'post',
    'contentType': 'application/json',
    'payload': JSON.stringify(formData)

  };

  var response = UrlFetchApp.fetch(req, options);
  var res=JSON.parse(response);

  return res.shortLink;
}

Дополнительная информация

  1. Документация по созданию динамических ссылок в Firebase
  2. Документация по использованию UrlFetchApp () в скрипте Google Apps
0 голосов
/ 07 июня 2018

Если служба сокращения URL использовалась в вашем проекте до 30 марта 201

1002 * Вместо
www.google.com

используйте

https://www.google.com

Ссылка: https://developers.google.com/url-shortener/v1/url/insert

, но если ваш проект был создан 30 марта 2018 года или после этой даты

С https://developers.google.com/url-shortener/v1/

Начиная с 30 марта 2018 года, мы будем отказываться от поддержкидля сокращения URL goo.gl.Пожалуйста, смотрите это сообщение в блоге для подробных графиков и альтернатив.

Просто чтобы быть ясным, пожалуйста, обратите внимание, из связанного сообщения в блоге:

Для разработчиков

Начиная с 30 мая 2018 года, только проекты, которые до сегодняшнего дня обращались к API Shortener URL, могут создавать короткие ссылки.

...