在自定义电子表格函数中使用 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.
- 这可能吗?
- 如果是,我需要一个认证令牌吗?
- 如果是,我应该选择哪种密钥类型?
- 如何实现这种使用的授权?
- 我需要付费吗?
- 如果没有,其他插件如何使用外部APIs
非常感谢您的回答,
编辑: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());
}
我想将 API(url 缩短器)与 public google 附加组件一起使用。 目前我的代码 returns:
Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.
- 这可能吗?
- 如果是,我需要一个认证令牌吗?
- 如果是,我应该选择哪种密钥类型?
- 如何实现这种使用的授权?
- 我需要付费吗?
- 如果没有,其他插件如何使用外部APIs
非常感谢您的回答,
编辑: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());
}