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

How to get share count from Mail.ru?

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

如果我转到浏览器,输入 URL 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

怎么了?如何让它发挥作用?

请帮帮我!

看到这里我正在获取值。

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

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

解决方案 I found here.

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

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

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

第二。对于 URL 和 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);