如何从Mail.ru获得分享数?

时间:2015-09-15 16:37:33

标签: jquery json share

我尝试从Mail.ru社交网络(Мой Мир)获取分享数。

如果我转到浏览器,请输入此网址http://connect.mail.ru/share_count?url_list=THIS_MY_URL&callback=1&func=?然后按回车键,我会收到此回复:

?(
{
  "THIS_MY_URL":{"shares":10,"clicks":5}
});

这是我的jQuery代码:

var url = encodeURIComponent(location.href);

$.getJSON('http://connect.mail.ru/share_count?url_list=' + url + '&callback=1&func=?', function(response) {
  alert(response[url].shares);
});

在Chrome控制台中,我收到以下消息:

Uncaught TypeError: Cannot read property 'shares' of undefined

什么错了?如何使它工作?

请帮帮我!

2 个答案:

答案 0 :(得分:0)

看到这里我得到了价值。

    var data = { "vk.com": { "shares": 12372, "clicks": 413} };

        for (var url in data) {
            if (data.hasOwnProperty('vk.com')) {
                var shares= data['vk.com'].shares;
            }
        }

this answer

答案 1 :(得分:0)

工作解决方案I found here

<强>第一即可。当响应对象为空时,显示错误消息Uncaught TypeError: Cannot read property 'shares' of undefined。当URL没有共享计数时,这是来自社交网络的标准响应,即Object = {}

要修复它,请将此代码放入$.getJSON()(来自我的第一篇文章):

if ($.isEmptyObject(response)) alert('0'); // If Object = {}
else // Code for not empty Object

<强>第二即可。对于包含shares > 0(或clicks > 0)的网址的展示计数器,请使用以下代码:

var url = encodeURIComponent(location.href);
for (var url in response) {
    if (response.hasOwnProperty(url)) {
        var count = response[url].shares;
        break;
    }
}

alert(count);