簡體   English   中英

如何goo.gl-縮短js中的URL?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM