Приветствую!
Ищу решение данного вопроса уже довольно давно. Суть такая: нужно через jQuery.getJSON получить кол-во «расшариваний» из сервиса
StumbleUpon в свой скрипт (кастомные шейр-кнопки).
Да, у сервиса есть шикарная
документация на эту тему, но (по непонятным причинам) не сработывает то, что там написано. Нет, ну работает, конечно же, через адресную строку браузера.. но через jQuery.getJSON никак не получить значение — вылетает ошибка в консоли хрома.
Грубо говоря, если в браузере ввести пример из их API:
http://www.stumbleupon.com/services/1.01/badge.getinfo?url=http://www.treehugger.com/
то выдаётся отличный валидный JSON:
{
"result": {
"url": "http://www.treehugger.com/",
"in_index": true,
"publicid": "1tin26",
"views": 123623,
"title": "TreeHugger",
"thumbnail": "http://cdn.stumble-upon.com/mthumb/428/925428.jpg",
"thumbnail_b": "http://cdn.stumble-upon.com/bthumb/428/925428.jpg",
"submit_link": "http://www.stumbleupon.com/badge/?url=http://www.treehugger.com/",
"badge_link": "http://www.stumbleupon.com/badge/?url=http://www.treehugger.com/",
"info_link": "http://www.stumbleupon.com/url/www.treehugger.com/"
},
"timestamp": 1443261036,
"success": true
}
Но если попробовать обратиться через jQuery.getJSON из скрипта, то всё время будет вот такая ошибка:
badge.getinfo?url=http%3A%2F%2Fwww.treehugger.com%2F&callback=jQuery111203496418842114508_14…:1
Uncaught SyntaxError: Unexpected token :
При этом, мой скрипт вызова такой:
...
$.getJSON('http://www.stumbleupon.com/services/1.01/badge.getinfo?url=' + encodeURIComponent('http://www.treehugger.com/') + '&callback=?', function(response) {
console.log(response);
});
...
Да, есть решения с помощью различных сторонних сервисов, типа
YQL или
Any Origin (и его open source альтернатива —
Whatever Origin), через которые всё работает.. но это лишний запрос и время ожидания.
Также у YQL ограничение по запросам в сутки (в час), а Any Origin вообще платный и может забанить «без суда и следствия» при бесплатном использовании (который там разрешён для ознакомления). А вот с Whatever Origin почти всё получилось, но постоянно в реквесте приходит 404-я ошибка сервиса StumbleUpon вместо красивого JSON (который выше).. так что, тоже мимо.
Всё же главный вопрос:
почему не работает на прямую через jQuery.getJSON?!
Подскажите чего делаю не так (может есть кейс решения?).. а то уже все ссылки по этой теме в гугле «посещённого цвета» :)