有没有办法通过脚本在 Google Developers Console 中启用高级 google 服务?
Is there a way to enable advanced google services in the Google Developers Console by script?
再来一次!
我创建了一个使用 UrlShortener.Url.insert 功能的嵌入式电子表格脚本。我的客户希望能够制作此电子表格的新实例以与同事共享。我已经实现了这个功能,但是当我开始测试新实例时,我发现我必须在我的 Google 开发者控制台中启用 URL Shortener API。
我想知道我是否可以使用我的脚本绕过此手动工作,或者我只能向客户提供如何操作的说明?
更新:
Sandy Good 建议使用 UrlFetch.fetch() 来得到短 link,但是这段代码:
function test_short_link() {
var options =
{
'longUrl': 'http://www.google.com/',
'muteHttpExceptions': true
};
var result = UrlFetchApp.fetch("https://www.googleapis.com/urlshortener/v1/url",
options);
Logger.log(result);
}
returns这个:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Required parameter: shortUrl",
"locationType": "parameter",
"location": "shortUrl"
}
],
"code": 400,
"message": "Required parameter: shortUrl"
}
}
看起来像这样topic
还有这段代码
function test_short_link() {
var options =
{
'longUrl': 'http://www.google.com/',
'muteHttpExceptions': true,
'method':'post'
};
var result = UrlFetchApp.fetch("https://www.googleapis.com/urlshortener/v1/url",
options);
Logger.log(result);
}
给我们带来:
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "userRateLimitExceededUnreg",
"message": "User Rate Limit Exceeded. Please sign up",
"extendedHelp": "https://code.google.com/apis/console"
}
],
"code": 403,
"message": "User Rate Limit Exceeded. Please sign up"
}
}
编辑:不,除了网站本身之外,无法通过任何方法访问 Google 开发控制台。
这是 UrlFetchApp 执行此操作的方法。您需要在 payload 参数中传递选项,而不是在 UrlFetchApp 选项中传递 object。您还需要在 header 中传递当前用户的 OAuth 令牌。当然,您需要修改此代码,因为它对 longUrl 进行硬编码并且不进行错误检查。
function ShortenUrl(){
var url = "https://www.googleapis.com/urlshortener/v1/url"
var payload = {"longUrl":"www.google.com"};
var parameters = { method : 'post',
headers : {'Authorization': 'Bearer '+ScriptApp.getOAuthToken()},
payload:JSON.stringify(payload),
contentType:'application/json',
muteHttpExceptions:true};
var response = UrlFetchApp.fetch(url, parameters);
Logger.log(response);
}
这个完全可以做到。试试这个代码:
function ShortenUrl(){
var url = 'https://www.googleapis.com/urlshortener/v1/url';
var apiKey = 'AIzBlNS-3HZdxKgwj-x30';
url += '?key=' + apiKey;
var payload = {"longUrl":"www.google.com"};
var parameters = { method : 'post',
payload:JSON.stringify(payload),
contentType:'application/json',
muteHttpExceptions:true};
var response = UrlFetchApp.fetch(url, parameters);
Logger.log(response);
}
再来一次!
我创建了一个使用 UrlShortener.Url.insert 功能的嵌入式电子表格脚本。我的客户希望能够制作此电子表格的新实例以与同事共享。我已经实现了这个功能,但是当我开始测试新实例时,我发现我必须在我的 Google 开发者控制台中启用 URL Shortener API。
我想知道我是否可以使用我的脚本绕过此手动工作,或者我只能向客户提供如何操作的说明?
更新: Sandy Good 建议使用 UrlFetch.fetch() 来得到短 link,但是这段代码:
function test_short_link() {
var options =
{
'longUrl': 'http://www.google.com/',
'muteHttpExceptions': true
};
var result = UrlFetchApp.fetch("https://www.googleapis.com/urlshortener/v1/url",
options);
Logger.log(result);
}
returns这个:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Required parameter: shortUrl",
"locationType": "parameter",
"location": "shortUrl"
}
],
"code": 400,
"message": "Required parameter: shortUrl"
}
}
看起来像这样topic
还有这段代码
function test_short_link() {
var options =
{
'longUrl': 'http://www.google.com/',
'muteHttpExceptions': true,
'method':'post'
};
var result = UrlFetchApp.fetch("https://www.googleapis.com/urlshortener/v1/url",
options);
Logger.log(result);
}
给我们带来:
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "userRateLimitExceededUnreg",
"message": "User Rate Limit Exceeded. Please sign up",
"extendedHelp": "https://code.google.com/apis/console"
}
],
"code": 403,
"message": "User Rate Limit Exceeded. Please sign up"
}
}
编辑:不,除了网站本身之外,无法通过任何方法访问 Google 开发控制台。
这是 UrlFetchApp 执行此操作的方法。您需要在 payload 参数中传递选项,而不是在 UrlFetchApp 选项中传递 object。您还需要在 header 中传递当前用户的 OAuth 令牌。当然,您需要修改此代码,因为它对 longUrl 进行硬编码并且不进行错误检查。
function ShortenUrl(){
var url = "https://www.googleapis.com/urlshortener/v1/url"
var payload = {"longUrl":"www.google.com"};
var parameters = { method : 'post',
headers : {'Authorization': 'Bearer '+ScriptApp.getOAuthToken()},
payload:JSON.stringify(payload),
contentType:'application/json',
muteHttpExceptions:true};
var response = UrlFetchApp.fetch(url, parameters);
Logger.log(response);
}
这个完全可以做到。试试这个代码:
function ShortenUrl(){
var url = 'https://www.googleapis.com/urlshortener/v1/url';
var apiKey = 'AIzBlNS-3HZdxKgwj-x30';
url += '?key=' + apiKey;
var payload = {"longUrl":"www.google.com"};
var parameters = { method : 'post',
payload:JSON.stringify(payload),
contentType:'application/json',
muteHttpExceptions:true};
var response = UrlFetchApp.fetch(url, parameters);
Logger.log(response);
}