我花了很多时间阅读谷歌手册和其他资源,并且在尝试使用此脚本获取短网址时没有发现我做错了什么:
function test_short_link() {
var apiKey, post_url, options, result;
post_url = "https://www.googleapis.com/urlshortener/v1/url";
apiKey = 'xxx';//here is real apiKey
post_url += '?key=' + apiKey;
var options =
{ 'method':'post',
'headers' : {'Content-Type' : 'application/json'},
"resource": {"longUrl": "https://google.com/"},
'muteHttpExceptions': true
}
result = UrlFetchApp.fetch(post_url, options);
Logger.log(result);
}
我做了各种修改,但它返回:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Required",
"locationType": "parameter",
"location": "resource.longUrl"
}
],
"code": 400,
"message": "Required"
}
}
它让我发疯!
请帮忙!这段代码有什么问题?
最佳答案 您需要修改此代码,因为它对longUrl进行硬编码并且不进行错误检查.一些重要的部分是API选项在UrlFetchApp选项对象的有效负载中发送,并且您需要在标头中传递当前用户OAuth令牌.
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);
}