Google URL сокращает API и JQuery не работает - PullRequest
1 голос
/ 14 января 2011

Кажется, я не могу заставить API Google для сокращения URL работать с методом jquery post:

  $(document).ready(function() {
   $.post("https://www.googleapis.com/urlshortener/v1/url", { longUrl: "http://www.google.com/"},
      function(data){
        console.log("data" + data);
      });
   $('body').ajaxError(function(e, xhr, settings, exception) {
       $(this).text('fail'+e);
   console.log(exception);
   });
  });

все это дает мне пустой ответ (данные) И пустой ответ (исключение). есть идеи?

я тоже пытался безуспешно:

   $.ajax({
 type: 'POST',
 url: "https://www.googleapis.com/urlshortener/v1/url",
 data: { longUrl: "http://www.google.com/"},
 success: success,
 dataType: "jsonp"
   });

Ответы [ 7 ]

2 голосов
/ 08 марта 2017

У меня возникла та же проблема: я не смог использовать Google Shortener API с jQuery, но после некоторых исследований я нашел простой JSON.stringify на data

Мой окончательный код выглядит такэто:

    window.googleShAPI = 'YOUR_KEY';
    window.getShortURL = function(url,cb){
        $.ajax({
             url:'https://www.googleapis.com/urlshortener/v1/url?key='+window.googleShAPI,
             type:"POST",
             data:JSON.stringify({longUrl:url}),
             contentType:"application/json",
             dataType:"json",
             success: function(data){ cb(data.id); }
        });
    }

    // example of use:
    window.getShortURL('http://www.google.com/',function(u){console.log('ShortURL is:'+u);})
1 голос
/ 14 января 2011

Для использования этого API необходим ключ API

Для этого метода требуется один параметр запроса: Ваш ключ API (с использованием параметра запроса ключа).Примечание. Параметр запроса можно не указывать при выполнении ограниченного числа вызовов, например, на этапе тестирования.

, а также возврат ответа в формате JSON

$.post("https://www.googleapis.com/urlshortener/v1/url?key=enter-your-api-key", { longUrl: "http://www.google.com/"},
  function(data){
    console.log("data" + data);
  }, "json");
0 голосов
/ 03 декабря 2015

Лучшее решение найдено на этом:

<html>
<head>
<title>URL Shortener using Google API. http://goo.gl </title>
<script src="https://apis.google.com/js/client.js" type="text/javascript"> </script>
</head>
<script type="text/javascript">
function load() {
    gapi.client.setApiKey('[GOOGLE API KEY]');
    gapi.client.load('urlshortener', 'v1', function() { 
        document.getElementById("result").innerHTML = "";

        var Url = "http://onlineinvite.in";
        var request = gapi.client.urlshortener.url.insert({
            'resource': {
            'longUrl': Url
            }
        });
        request.execute(function(response) {

            if (response.id != null) {
                str = "<b>Long URL:</b>" + Url + "<br>";
                str += "<b>Test Short URL:</b> <a href='" + response.id + "'>" + response.id + "</a><br>";
                document.getElementById("result").innerHTML = str;
            }
            else {
                alert("Error: creating short url \n" + response.error);
            }
        });
    });
}
window.onload = load;
</script>
<body>
<div id="result"></div>
</body>
</html>

Пожалуйста, замените [GOOGLE API KEY]

0 голосов
/ 05 января 2012

Вы не можете получить доступ к API сокращения URL Google, используя любой из методов, описанных в настоящее время в этих ответах, из-за ограничений междоменного доступа к сценариям. См. Обсуждение здесь для решений: Междоменная проблема с реализацией API сокращения URL Google

Спасибо Тавману за этот ответ, но он был скрыт в комментариях, и я сначала его не видел.

0 голосов
/ 23 февраля 2011

Попробуйте использовать getJson Метод:

url="https://www.googleapis.com/urlshortener/v1/url";
data = {
    key:"your-api-key",
    shortUrl:"http://www.google.com"
};
$.getJSON(url, data, function(data, textStatus){
    if(data.status=="OK"){
        alert(data.longUrl);
        }
    });
0 голосов
/ 14 января 2011

попробуйте установить contentType, например:

$.ajax({
 type: 'POST',
 contentType: "application/json"
 url: "https://www.googleapis.com/urlshortener/v1/url",
 data: { longUrl: "http://www.google.com/"},
 success: success,
 dataType: "jsonp"
   });
0 голосов
/ 14 января 2011

Я предполагаю, что вы прочитали справочную инструкцию Google URL Shortener , но я не вижу ключ API в вашем фрагменте кода:

POST https://www.googleapis.com/urlshortener/v1/url?key={key}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...