先决条件:在https://code.google.com/apis/console/为自己创建一个 urlshortener 的 API 密钥
有很多关于通过 js get api 将 goo.gl url 转换为原始 URL 的各种方法的文档,例如:here、here和here——至少第一个甚至可以工作。
如果我稍微调整一下以使用插入api 将 url 转换为小 url,但是传递 a { "longUrl": "https://codepen.io/" }
,它会中断。如果您愿意,可以在http://codepen.io/johan/full/EHbGy#YOUR-API-KEY-HERE试试,或者在某处运行:
<script>
var api_key = 'YOUR-API-KEY-HERE';
function makeRequest() {
var request = gapi.client.urlshortener.url.insert({
'longUrl': 'https://codepen.io/'
});
request.execute(function(response) {
alert(JSON.stringify(window.got = response));
});
}
function load() {
gapi.client.setApiKey(api_key);
gapi.client.load('urlshortener', 'v1', makeRequest);
}
</script>
<script src="https://apis.google.com/js/client.js?onload=load"></script>
...它只是响应错误:
{ "code": 400
, "message": "Required"
, "data":
[ { "domain": "global"
, "reason": "required"
, "message": "Required"
, "locationType": "parameter"
, "location": "resource.longUrl"
}
]
, "error":
{ "code": 400
, "message": "Required"
, "data":
[ { "domain": "global"
, "reason": "required"
, "message": "Required"
, "locationType": "parameter"
, "location": "resource.longUrl"
}
]
}
}
建议?url.insert
(不,如果您将参数更改为带有resource.longUrl
键的对象 - 或者只是在没有包装对象的情况下传递 url ,它不会更好。)