在自定义电子表格函数中使用 UrlShortener API

Using the UrlShortener API in a custom Spreadsheet function

我想将 API(url 缩短器)与 public google 附加组件一起使用。 目前我的代码 returns:

Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.

非常感谢您的回答,

编辑:OP 在评论中指出这是一个自定义函数。具有有限授权的自定义函数 运行。可用内容的完整列表位于:
https://developers.google.com/apps-script/guides/sheets/functions#using_apps_script_services

下面使用 REST API 得到缩短的 url。这将与自定义功能一起使用。您只需要启用 URL 缩短器 API 并生成服务器 API 密钥。将以下 link 处的 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;
}

原版Post


这里是使用 UrlShortener 高级服务的快速入门。您需要在开发人员控制台中打开该服务并激活 Url Shortener api。这将为您的附加组件提供每天 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());
}