Използване на API на UrlShortener в персонализирана функция за електронна таблица

Бих искал да използвам API (url shortener) с публична добавка на Google. За момента кодът ми се връща:

Дневният лимит за неупълномощена употреба е превишен. Продължителната употреба изисква регистрация.

  • Възможно ли е това?
  • If yes, Do I need an authentification Token?
    • If yes, what key type should I choose?
    • Как мога да приложа разрешението за този вид употреба?
    • Трябва ли да го плащам?
  • Ако не, как биха могли други добавки да използват външни API

Благодаря ви много за отговорите,


person JSmith    schedule 24.05.2015    source източник
comment
Запознати ли сте с групата за добавки на Google? Общност на Google   -  person Alan Wells    schedule 25.05.2015
comment
Е, казаха ми да задавам въпроси за препълване на стека, така че какво друго мога да направя с тази група?   -  person JSmith    schedule 25.05.2015
comment
Документацията на Google насочва хората към stackoverflow, което създава у хората впечатлението, че stackoverflow е мястото за всеки общ въпрос. И тогава, когато хората задават общ въпрос, те получават малко гласове. Вашият въпрос е относно добавките и тази група е специално за добавките.   -  person Alan Wells    schedule 25.05.2015
comment
Добре, благодаря ти, Санди, ще намеря отговора си в тази група, но дори и да е доста общ въпрос, почувствах, че може да помогне на хората да разберат основите на внедряването на API в различни планове. Благодаря все пак :)   -  person JSmith    schedule 25.05.2015
comment
Все още може да получите отговор тук. Има официалния начин, по който се предполага, че stackoverflow работи, а след това има и реалност.   -  person Alan Wells    schedule 25.05.2015
comment
Дневната безплатна квота е 1 000 000 заявки. Как сте настроени? Използвате ли услугата Url Shortener Advanced с активиран API в разработката. конзола?   -  person Spencer Easton    schedule 25.05.2015


Отговори (1)


РЕДАКТИРАНЕ: OP посочи в коментарите, че това е персонализирана функция. Персонализирана функция се изпълнява с ограничено разрешение. Пълен списък на наличните неща е на:
https://developers.google.com/apps-script/guides/sheets/functions#using_apps_script_services

По-долу използва REST API за получаване на съкратения URL адрес. Това ще работи с персонализирани функции. Просто ще трябва да активирате API за съкращаване на URL адреси и да генерирате ключ за сървърен API. Използвайте IP адресите на следната връзка за вашия API ключ на сървъра:
https://developers.google.com/apps-script/guides/jdbc#setup_for_google_cloud_sql

/**
 * Returns a shortened URL of the input.
 *
 * @param {string} longUrl The long URL to shorten.
 * @return The shortened url.
 * @customfunction
 */
function getShortUrl(longUrl) {

   var payLoad = {"longUrl": longUrl};
   var apiKey = PropertiesService.getScriptProperties().getProperty("ServerApiKey");
   var url  = "https://www.googleapis.com/urlshortener/v1/url?key="+ apiKey;
  var options = { method:"POST",
                 contentType:"application/json",
                 payload:JSON.stringify(payLoad),
                 muteHttpExceptions:true};

  var response = UrlFetchApp.fetch(url, options);
  if(response.getResponseCode() != 200){throw new Error("Unable to shorten url");}
  return JSON.parse(response).id;
}

Оригинален пост


Ето кратък пример за използването на разширената услуга UrlShortener. Ще трябва да включите услугата и да активирате API на Url Shortener в конзолата за разработчици. Това ще ви даде квота от 1 000 000 заявки на ден за вашата добавка.

function myFunction() {
  var url = UrlShortener.newUrl();
  url.longUrl = "http://www.example.org";  
  var short = UrlShortener.Url.insert(url);
  Logger.log(short);

  //list all users shortened urls
  Logger.log(UrlShortener.Url.list());
}
person Spencer Easton    schedule 25.05.2015
comment
всичко работи добре, когато го използвам в IDE, но не мога да го използвам като персонализирана функция. Свързано ли е с оторизацията на приложението ми? Ето съобщението, което получавам. Превишен дневен лимит за неупълномощена употреба. Продължителната употреба изисква регистрация. Благодаря предварително - person JSmith; 27.05.2015
comment
Ах персонализираните функции са различен звяр. Ще редактирам отговора. - person Spencer Easton; 27.05.2015
comment
Благодаря, защото вече се справих с проблеми със задействане, но все още не го разбирам напълно - person JSmith; 27.05.2015
comment
Добре много благодаря, вече работи. Но все още не го пуснах на живо. - person JSmith; 28.05.2015