2011-01-21 3 views
13

Я немного играю с Javascript в эти дни ... Я сжимал некоторые URL-адреса, используя бит.ly, чтобы их чирикать, затем я начал думать о автоматическом процессе которые могли бы использовать их API для сокращения URL-адресов, которые я хотел, затем я просмотрел их документацию, и я увидел, что они поддерживают только PHP (с некоторым Javascript), но все равно я могу сделать это, используя только Javascript?Использование только Javascript для сокращения URL-адресов с использованием интерфейса Bit.ly

ответ

29

Вот пример того, как для получения сокращенного URL-адреса с Bitly API и jQuery не требуется код на стороне сервера.

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

Следующий код может быть использован, чтобы получить короткий 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

Исправьте меня, если я ошибаюсь, но это будет означать, что у кого-то есть доступ к вашему личному, закрытому ключу API - то есть я мог бы затем захватить вашу учетную запись и заполнить ее сокращенными URL-адресами BS, если бы я просмотрел источник вашей страницы. – slifty

+5

Ключ API и секретный ключ - это не одно и то же. Вы просто не можете скрыть какой-либо ключ API для API JavaScript на стороне клиента, поскольку исходный код доступен. Но поставщик API может проверить, соответствует ли URL-адрес реферера 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

Но как я могу поместить сокращенный URL-адрес в переменную, чтобы использовать его свободно? –

+0

Несколько способов сделать это легко - нужно просто использовать поддержку JQuery для разбора удаленного запроса JSON и вывести ответ из большего результата в var. См. Http://api.jquery.com/jQuery.getJSON/ для примера. – kvista

3

От разработчика best practises страницы на Bitly:

Для обеспечения безопасности вашего ключа API и/или токен доступа OAuth, мы настоятельно рекомендуем, чтобы вы делали запросы на бит-серверную серверную сторону, когда это было возможно.

Любые запросы к битовому API, создаваемому с помощью Javascript на стороне клиента, представляют угрозу для вашего токена OAuth или ключа API, но есть шаги, которые вы можете предпринять, чтобы частично смягчить этот риск. Самое главное, никогда не включайте в свою страницу api_key или access_token. Храните ссылки на свои api_key или access_token в коде, который содержится в файлах внешнего javascript, которые включены в страницу. Для дополнительной безопасности не используйте ключ или токен, содержащийся где-либо в вашем javascript-коде, а скорее сделайте вызов ajax для его загрузки и сохраните его в переменной, хранящейся в частном режиме. Пример этой реализации см. В нашем примере html и содержит файлы javascript.