2011-01-21 11 views
13

Sto giocando un po 'con Javascript in questi giorni ... Stavo riducendo alcuni URL usando bit.ly per twittarli, poi ho iniziato a pensare a un processo automatizzato che potrebbe usare la loro API per ridurre gli URL che volevo, poi ho consultato la loro documentazione e ho visto che supportano solo PHP (con qualche Javascript), ma c'è comunque che potrei farlo usando solo Javascript?Utilizzare solo Javascript per compattare gli URL usando l'API Bit.ly

risposta

29

Ecco un esempio di come per ottenere un URL abbreviato con API Bitly e jQuery, non è richiesto alcun codice lato server.

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); 
     } 
    ); 
} 

il codice seguente può essere utilizzato per ottenere un URL breve:

/* 
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

Correggetemi se ho torto, ma questo significherà che chiunque ha accesso alla tua chiave API privata, cioè potrei dirottare il tuo account e riempirlo con URL abbreviati BS se ho visto l'origine della tua pagina. – slifty

+5

La chiave API e la chiave segreta non sono la stessa cosa. Non è possibile nascondere alcuna chiave API per l'API JavaScript lato client, poiché il codice sorgente è disponibile. Ma il provider API può controllare che l'URL del referrer corrisponda all'URL fornito durante il processo di registrazione. –

2

A seconda di dove è in esecuzione il codice JavaScript, si può sempre utilizzare l'API REST bit.ly:

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

via XmlHttpRequest, ad esempio:

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

Ma come posso inserire l'URL abbreviato in una variabile per usarlo liberamente? –

+0

Diversi modi per farlo facilmente: uno è semplicemente utilizzare il supporto JQuery per l'analisi delle richieste remote JSON ed estrarre la risposta dal risultato più grande in una var. Vedi http://api.jquery.com/jQuery.getJSON/ per un esempio. – kvista

3

Dallo sviluppatore best practises pagina su bitly:

Per garantire la sicurezza della vostra chiave API e/o token di accesso OAuth, consigliamo vivamente di effettuare richieste al lato server API bitevole quando possibile.

Qualsiasi richiesta all'API bitly effettuata tramite JavaScript sul lato client presenta il rischio che il token OAuth o la chiave API vengano compromessi, ma esistono alcuni passaggi che è possibile adottare per mitigare parzialmente questo rischio. Ancora più importante, non includere mai il tuo api_key o access_token in linea nella pagina. Conserva qualsiasi riferimento al tuo api_key o access_token nel codice contenuto nei file javascript esterni che sono inclusi nella pagina. Per maggiore sicurezza, non avere la chiave o il token contenuti in qualsiasi parte del codice javascript, ma piuttosto effettuare una chiamata ajax per caricarlo e tenerlo in una variabile memorizzata in un metodo con ambito privato. Per un esempio di questa implementazione, si prega di consultare il nostro esempio html e file javascript inclusi.