Я пытаюсь создать приложение, которое получает информацию об URL из разных социальных сетей, таких как Facebook, LinkedIn, Twitter, StumbleUpon, Digg и Delicious.
Я запрашиваю информацию с помощью REST и в основном получаю ответы в формате JSON. И разобрать их с помощью javascript (jQuery)
У меня не было проблем с подключением к Facebook, Twitter и Delicious с помощью метода jQuerys $ .getJSON с использованием JSONP dataType (добавление callback =? В URL), но проблема возникает с LinkedIn и StumbleUpon.
Когда я использую ту же технику, я получаю ошибки.
Для StumbleUpon
"invalid label"
{"result":{"url":"http:\/\/www.google.com\/","in_index":true,"publicid":"2pI1xR","views":201756,"title":"Google","thumbnail":"http:\/\/cdn.stumble-upon.com\/mthumb\/31\/10031.jpg","thumbnail_b":"http:\/\/cdn.stumble-upon.com\/bthumb\/31\/10031.jpg","submit_link":"http:\/\/www.stumbleupon.com\/submit?url=http:\/\/www.google.com\/","badge_link":"http:\/\/www.stumbleupon.com\/badge?url=http:\/\/www.google.com\/","info_link":"http:\/\/www.stumbleupon.com\/url\/www.google.com\/"},"timestamp":1323182766,"success":true}
Очевидно, что он не работает без типа запроса JSONP с момента его междоменного запроса. Я провел некоторое исследование и обнаружил, что проблема может заключаться в том, что jQuery отправляет запрос JSONP, но получает ответ JSON, а затем спотыкается. Если это правда, я не уверен, что я должен сделать, чтобы сделать это правильно. Я сделал ответный тест с JSONLint и получил правильный результат. Так что, похоже, проблема в том, как я его анализирую, а не в самом ответе.
Для LinkedIn я получаю следующее
"missing ) after argument list"
IN.Tags.Share.handleCount({"count":18118,"url":"http://www.google.com/"}
Так что, очевидно, это недопустимые ошибки JSON и jQuery. Есть ли способ получить эти данные другим способом?
Так что я застрял здесь, поскольку вижу результаты, но не могу их проанализировать.
PS Я бы не хотел использовать для этого код на стороне сервера.
Вот код, который я использую:
var url = 'http://www.google.com';
// StumbleUpon
$.getJSON("http://www.stumbleupon.com/services/1.01/badge.getinfo?url=" + url +"&callback=?", function (data) {
console.log(data);
});
$.getJSON("http://www.linkedin.com/cws/share-count?url=" + url +"&callback=?", function (data) {
console.log(data);
});