18

tweetdeck の仕組みによく似た、オンザフライの URL 短縮サービスを探しています。ボタンが押されたときに URL を受け取り、bit.ly などの短縮サービスを介して実行する多くの jQuery および一般的な JavaScript プラグインを見つけました。ただし、その場でそれを行うものを見つけることができませんでした。私の最初の質問は、これはすでにどこかに存在しますか? 次に、そうでない場合、テキストボックス内で短縮する必要がある URL を認識する最善の方法は何でしょうか? 私の考え:

  1. そのテキスト領域の onKeyUp で、http を探してテキストを実行します。
  2. 見つかった場合は、URL 全体を取得します (末尾を決定するにはどうすればよいですか? ピリオド、コンマ、スペースなどである可能性があります...)
  3. URL がまだ bit.ly URL でないことを確認してください
  4. URL を検証します (要求を作成し、http 応答がエラーでないことを確認します。bit.ly は既にこれを行っていますか?)
  5. 有効な場合は、URL を bit.ly の API に送信し、応答を取得します。
  6. テキスト領域の長い URL を短い URL に置き換えます。

考え?

4

6 に答える 6

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

次のコードは、短い 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);
});
于 2011-08-10T03:49:50.607 に答える
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);
        }
    );
},
于 2014-02-27T09:22:41.297 に答える
4

オンザフライ ビットは、信頼性と迅速性を高めるのが難しくなります。

ほとんどの場合、http や www.

あなたが言ったように、URLにスペースが含まれているか、さらに悪いことに、ユーザーがスペースを入れなかったために次の文に遭遇したかどうかを判断するのは難しいでしょう。

また、 https://stackoverflow.com/の代わりにhttp://stakoverflow.com/と入力したため、後で URL を変更する必要がある場合はどうすればよいでしょうか?

最良の解決策は、テキスト エディターに「短縮 URL を挿入する」ボタンを配置して、人々がそれを実行できるようにすることだと思います。または、投稿が行われたときにサーバー側で行います。

于 2009-11-20T16:12:24.733 に答える
4

サーバー上で php と curl を使用して短い URL を生成することもできます。この方法では、Web ページで API キーを公開する必要はありません。

<?php
    //the long url posted by your webpage
    $url = strip_tags($_POST["url"]);

    $api_user = "your_bitly_user_name";
    $api_key = "your_bitly_api_key";

    //send it to the bitly shorten webservice
    $ch = curl_init ("http://api.bitly.com/v3/shorten?login=$api_user&apiKey=$api_key&longUrl=$url&format=json");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    //the response is a JSON object, send it to your webpage
    echo curl_exec($ch);    
?>

次に、Web ページのコードは次のようになります。

    //the long url that you want to shorten
    var longUrl = escape(window.location.href)

    $.ajax({
        url : "php/getShortUrl.php",//this is the php script above
        dataType : "json",
        type : "POST",
        data : {
            url : longUrl
        },
        success : function(data) {
            if(data.status_txt === "OK"){
                shortUrl = data.data.url;
            }
        },
        error : function(xhr, error, message) {
            //no success, fallback to the long url
            shortUrl = longUrl
        }
    });

詳細については、bitly APIを参照してください。

于 2011-10-15T10:36:28.543 に答える
0

Bit.ly APIにjQueryPOSTを実行してみませんか? http://blog.themeforest.net/tutorials/creating-an-ajax-web-app-using-the-bitly-api/

于 2009-11-20T19:02:09.170 に答える
0

似たようなものを探しているときにあなたの投稿を見つけ、最終的には、探しているもの (少なくともその一部) を提供する jQuery プラグインを作成しました。

Bitbucketの私のjQuery URL Shortener

これは非常に単純なプラグインです。ユーザーの URL を短縮する必要はなかったので、短縮する前に長さのチェックや URL のテストは行っていませんが、これらのタイプの機能を追加することは嫌いではありません。

役に立つかもしれないと思っただけです。

テキストボックス内の URL の認識については、RegEx を使用して url と一致させることをお勧めします。

于 2010-03-19T14:23:52.637 に答える