google short url - создаем короткие ссылки

Тема в разделе "JavaScript", создана пользователем bezzubtsev, 8 сен 2015.

Модераторы: ZiX
  1. bezzubtsev

    bezzubtsev

    Регистр.:
    14 май 2015
    Сообщения:
    230
    Симпатии:
    65
    Подскажите, пожалуйста. Кручу-верчу код, но он не работает и всё тут.
    Суть - сделать длинную ссылку короткой через использование соответствующей службы гугла.

    Вот код, который не работает, как я его уже не дёргал :(
    Буду очень признателен за любую помощь.

    Код:
    <script src="https://apis.google.com/js/client.js"></script>
    
    <script type="text/javascript"><!--
    $('#button').click(function(){
    
    // тут выполяется всякая лабуда
    
    setTimeout(function(){
    var main_url = ('http://looooooooooooooong-url.ru/test_page_123456798'').slice(0,-1);
    
    // делаем короче
     
      var key = "XxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxX"; // тут реальный ключ
      var serviceUrl="https://www.googleapis.com/urlshortener/v1/url?key="+key;
     
      var options={
        longUrl: main_url,
        muteHttpExceptions:true,
        method:"post",
        contentType: "application/json",
        payload : JSON.stringify({'longUrl': longUrl })
      };
     
      var response=UrlFetchApp.fetch(serviceUrl, options);
     
      if(response.getResponseCode() == 200) {
        var content = JSON.parse(response.getContentText());
        if ( (content != null) && (content["id"] != null) )
          return content["id"];
      }
       return longUrl;
    
           $('#urlHolder').html();
         $('#urlHolder').html('Твоя короткая ссылка: <a href="' + longUrl +'">'+ longUrl +'</a>').delay(200).show(0);
         $('#option-legenda').children('input').val(longUrl);
    
       }, 200);
       
    });
    
     
  2. Unak

    Unak Создатель

    Регистр.:
    27 июл 2014
    Сообщения:
    42
    Симпатии:
    18
    Вот, все прекрасно работает.

    HTML:
    <html>
        <head>
        </head>
        <script type="text/javascript">
            function makeShort()
            {
                var longUrl = document.getElementById("longurl").value;
                var request = gapi.client.urlshortener.url.insert({
                    'resource': {
                        'longUrl': longUrl
                    }
                });
                request.execute(function(response)
                {
                    if (response.id != null)
                    {
                        str = "<b>Long URL:</b>" + longUrl + "<br>";
                        str += "<b>Short URL:</b> <a href='" + response.id + "'>" + response.id + "</a><br>";
                        document.getElementById("output").innerHTML = str;
                    }
                    else
                    {
                        alert("error: creating short url");
                    }
                });
            }
    
            function getShortInfo()
            {
                var shortUrl = document.getElementById("shorturl").value;
                var request = gapi.client.urlshortener.url.get({
                    'shortUrl': shortUrl,
                    'projection': 'FULL'
                });
                request.execute(function(response)
                {
                    if (response.longUrl != null)
                    {
                        str = "<b>Long URL:</b>" + response.longUrl + "<br>";
                        str += "<b>Create On:</b>" + response.created + "<br>";
                        document.getElementById("output").innerHTML = str;
                    }
                    else
                    {
                        alert("error: unable to get URL information");
                    }
                });
            }
            function load()
            {
                gapi.client.setApiKey('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); //get your ownn Browser API KEY
                gapi.client.load('urlshortener', 'v1', function() {
                });
            }
            window.onload = load;
    
        </script>
        <script src="https://apis.google.com/js/client.js"></script>
    
        <body>
            URL: <input type="text" id="longurl" name="url" value="https://www.nulled.cc" /> <br/>
            <input type="button" value="Create Short" onclick="makeShort();" /> <br/> <br/>
    
            URL: <input type="text" id="shorturl" name="url" value="https://www.nulled.cc" /> <br/>
            <input type="button" value="Get Short  URL Info" onclick="getShortInfo();" />
            <div id="output"></div>
        </body>
    </html>
     
  3. Unak

    Unak Создатель

    Регистр.:
    27 июл 2014
    Сообщения:
    42
    Симпатии:
    18
  4. bezzubtsev

    bezzubtsev

    Регистр.:
    14 май 2015
    Сообщения:
    230
    Симпатии:
    65
    Этот код я уже тоже находил. Он работает на инпуты и на рефреш страницы. Мне это совсем не подходит.
    Во-первых, нужно, чтобы код выдавался каждый раз при запросе функции (указано в моем коде). Во-вторых, полученная короткая ссылка должна появиться в двух местах (див и импут).