[英]How do I goo.gl-shorten a url in js?
Prereq:在https://code.google.com/apis/console/為urlshortener創建自己的API密鑰
有很多文檔可以通過js get api將goo.gl網址轉換為原始網址的各種方法,例如: 這里 , 這里和這里 - 至少第一個甚至可以工作。
如果我稍微調整那個以使用insert api將url轉換為一個小url, { "longUrl": "https://codepen.io/" }
傳遞一個{ "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/'}
});
我想我會刪除凌亂的客戶端庫,當它結果我可以做五行coffescript而不是加載所有那些殘余,因為我已經有了jQuery周圍: http : //codepen.io/johan/筆/ 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}"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.