prereq:在https://code.google.com/apis/console/
上创建一个urlshortener的API键有很多文档,用于通过JS GET GET API,E G:在这里,这里和这里将goo.gl URL转入原始URL的各种方法 - 至少第一个甚至有效。
如果我稍微调整了一个这样的调整,以便使用插入API将URL 转换为 一个小URL,但是通过{ "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,则无法正常工作。)
在文档或错误消息中不太清楚,但是您的请求应该看起来像以下内容,一切都很好:
var request = gapi.client.urlshortener.url.insert({
'resource': {'longUrl': 'https://codepen.io/'}
});
我想我会为此放弃凌乱的客户库,当证明我可以做五行的咖啡品,而不是加载所有这些库存,因为无论如何我已经在周围都有jQuery:http://codepen.io/johan/pen/pujyh
api = 'https://www.googleapis.com/urlshortener/v1/url'
api += "?key=#{key}" if key = location.search.slice 1
$.ajax
url: api
type: 'POST'
data: JSON.stringify(longUrl: url)
contentType: 'application/json'
success: (got) ->
alert "shortened url: #{got.id}"