2011-01-21 73 views
13

我最近用Javascript玩了一些...我正在使用bit.ly縮小一些URL來發送它們,然後我開始思考一個自動化過程可以使用他們的API來縮小我想要的URL,然後我查看他們的文檔,並且我看到他們只支持PHP(帶有一些Javascript),但是無論如何,我只能使用Javascript來做到這一點?使用Javascript來收縮URL使用Bit.ly API

回答

29

下面是一個例子,如何通過Bitly API和jQuery獲取縮短的URL,不需要服務器端代碼。

function get_short_url(long_url, login, api_key, func) 
{ 
    $.getJSON(
     "http://api.bitly.com/v3/shorten?callback=?", 
     { 
      "format": "json", 
      "apiKey": api_key, 
      "login": login, 
      "longUrl": long_url 
     }, 
     function(response) 
     { 
      func(response.data.url); 
     } 
    ); 
} 

下面的代碼可以用來獲得短網址:

/* 
Sign up for Bitly account at 
https://bitly.com/a/sign_up 

and upon completion visit 
https://bitly.com/a/your_api_key/ 
to get "login" and "api_key" values 
*/ 
var login = "LOGIN_HERE"; 
var api_key = "API_KEY_HERE"; 
var long_url = "http://www.kozlenko.info"; 

get_short_url(long_url, login, api_key, function(short_url) { 
    console.log(short_url); 
}); 
2

根據JavaScript的執行是在哪裏,你總是可以使用bit.ly REST API:

http://code.google.com/p/bitly-api/wiki/ApiDocumentation

通過XMLHttpRequest

,例如:

http://api.bit.ly/v3/shorten?login=bitlyapidemo&apiKey=R_0da49e0a9118ff35f52f629d2d71bf07&longUrl=http%3A%2F%2Fbetaworks.com%2F&format=json 
+0

但我怎麼能把縮短的網址放到一個變量中以便自由使用它? – 2011-01-21 16:03:21

+0

有幾種方法可以輕鬆實現 - 一種方法是簡單地使用JQuery支持JSON遠程請求解析,然後將較大結果的答案抽出到var中。有關示例,請參閱http://api.jquery.com/jQuery.getJSON/。 – kvista 2011-01-21 16:21:43

3

從開發best practises頁面上bitly:

爲了確保您的API密鑰的安全性和/或OAuth訪問令牌,我們強烈建議您儘可能向API服務器端請求。

對通過客戶端Javascript進行的惡意API提出的任何請求都會導致您的OAuth令牌或API密鑰受到危害,但您可以採取一些措施來部分降低此風險。最重要的是,絕對不要在頁面中內嵌api_key或access_token。在包含在頁面中包含的外部JavaScript文件中的代碼中保留對您的api_key或access_token的任何引用。爲了獲得額外的安全性,不要在JavaScript代碼中的任何位置包含密鑰或標記本身,而應該使用ajax調用來加載它,並將其保存在存儲在私有作用域方法中的變量中。有關此實現的示例,請參閱我們的示例html和包含的javascript文件。