jQuery即时URL缩短

Jas*_*son 18 javascript jquery url-rewriting bit.ly url-shortener

我正在寻找一个即时的URL缩短器,就像tweetdeck的工作原理一样.我找到了许多jQuery和一般的javascript插件,它们接受一个url并在按下按钮时通过缩短服务(如bit.ly)运行它.但是,我还没能找到一个在飞行中做到这一点.我的第一个问题是这已经存在于某个地方吗?其次,如果没有,那么识别需要在文本框中缩短的URL的最佳方法是什么?我的想法:

  1. 在该文本区域的onKeyUp上运行查找http的文本
  2. 如果找到了抓取整个URL(我如何确定结束?可以是句号,逗号,空格等...)
  3. 确保该URL不是bit.ly URL
  4. 验证URL(发出请求并确保http响应不是错误,bit.ly已经这样做了吗?)
  5. 如果有效,请将URL发送到bit.ly的API并获取响应
  6. 将长URL替换为文本区域中的短URL.

思考?

Mak*_*nko 18

以下是如何使用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);
        }
    );
}
Run Code Online (Sandbox Code Playgroud)

以下代码可用于获取简短的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);
});
Run Code Online (Sandbox Code Playgroud)

  • Bitly API已经改变.见[我的回答](http://stackoverflow.com/a/22064069/237739) (2认同)

Pep*_*ier 8

我猜Bitly的API略有改变.您现在只需要一个访问令牌来请求一个简短的URL.

按照最佳做法,我创建了以下仅限Javascript的代码段:

getShortUrl: function(url, callback)
{
   var accessToken = '___YOUR_ACCESS_TOKEN___';
   var url = 'https://api-ssl.bitly.com/v3/shorten?access_token=' + accessToken + '&longUrl=' + encodeURIComponent(url);

    $.getJSON(
        url,
        {},
        function(response)
        {
            if(callback)
                callback(response.data.url);
        }
    );
},
Run Code Online (Sandbox Code Playgroud)