javascript
  • jquery
  • api
  • twitter
  • jsonp
  • 2015-08-24 3 views 6 likes 
    6

    У меня есть следующий код, и я не могу понять, почему он не возвращается и печать в теле HTML ..Как получить URL-адрес URL-адреса twitter?

    var pageURL = document.URL; 
    var tweet = "https://cdn.api.twitter.com/1/urls/count.json?url='"+ pageURL + "'"; 
    
    $.getJSON(tweet,function(json){ 
        $('#twitterfeed').html(json.count); 
    }); 
    
    <div id="twitterfeed"></div> 
    

    https://cdn.api.twitter.com/1/urls/count.json?url=http://www.google.com

    возвращает { «счетчик»: 23844636 , "url": "http://www.google.com/"}

    Следующие, похоже, не работают, есть ли у кого-нибудь идеи, почему?

    +0

    Является ли JavaScript перед HTML в одном файле? – user2182349

    +0

    Да, это на вершине. – iBrazilian2

    +0

    Оберните его в $ (function() {// ваш код здесь}); который задерживает его выполнение до тех пор, пока DOM не будет загружен и не проанализирован. – user2182349

    ответ

    3

    По умолчанию jQuery выполняет запрос AJAX. Поскольку это кросс-домен и HTTP-заголовок CORS нет в ответ, он терпит неудачу. Добавить & callback =? запросить URL, чтобы сделать запрос JSONP

    var pageURL = "http://www.google.com"; 
        var urlParams = $.param({ "url": pageURL }); 
        var tweet = "https://cdn.api.twitter.com/1/urls/count.json?"+urlParams; 
    
    
        $.ajax(tweet, { "dataType" :"jsonp" }).done(function(json){ 
        $('#twitterfeed').text(json.count); 
        }); 
    

    Демо

    http://jsbin.com/tasaloraje/edit?html,output

    +0

    Это, похоже, не работает, посмотрите на это. Http://jsbin.com/yebotuwaya/edit?html,output Но если вы удалите «+ страницаURL +» и включите URL-адрес, он будет работать. у вас есть какие-то идеи относительно того, почему это так? – iBrazilian2

    +0

    Изменен скрипт, добавив правильную URL-кодировку для URL-адреса страницы, используя $ .ajax-вызов с отложенным (как рекомендовано разработчиками jQuery). Проверьте jsFiddle –

    +0

    Отлично, спасибо вам за помощь. – iBrazilian2

    10

    По состоянию на 20 ноября 2015 года нет счетчика Tweet API, так что не беспокойтесь: https://blog.twitter.com/2015/hard-decisions-for-a-sustainable-platform

    +0

    Спасибо. Согласно концу сообщения в блоге, возможно, в ближайшем будущем будет эквивалент? В любом случае, я думаю, что это очень плохие решения, чтобы удалить его. Даже API facebook улучшил этот счетчик в своем API. Надеюсь, твиттер будет реализовывать его снова в лучшем виде. «Мы высоко ценим ваши отзывы за последние 60 дней о том, как вы использовали эти показатели, и с нетерпением ждем его включения, поскольку мы создаем и улучшаем инструменты для интеграции контента Twitter в ваши приложения и веб-сайты». – Anselme

    2

    https://cdn.api.twitter.com/1/urls/count.json устарела.

    Заполните, пожалуйста, http://opensharecount.com, но вы можете просто изменить его на указанный здесь URL, если вы зарегистрируетесь в своем домене.

    +0

    спасибо, хорошая альтернатива, однако гораздо медленнее ...:/ – Anselme

    +0

    Я предпочитаю медленный, но работающий не работает ;-) И только подсчет идет медленно, дисплей должен быть быстрым, поскольку мы используем CDN. – user3512969

    +0

    Спасибо, это хорошая альтернатива, определенно, но ограничение как-то: как насчет получения твитов для видео с YouTube, когда URL-адрес принадлежит youtue.com или внешнему доменному имени? Я действительно надеюсь, что Twitter обеспечит альтернативу, даже если нам придется платить – Anselme

    Смежные вопросы