2016-09-03 2 views
0

У меня есть следующий сценарий, чтобы получить количество подобных со страницы Facebook:Javascript Uncaught TypeError: Facebook Как Встречное

$("#facebook-likes").each(function() { 
    var container = $(this); 
    var fburl = container.attr('rel'); 
    $.ajax({ 
    dataType: 'json', 
    type: 'GET', 
    url: 'https://api.facebook.com/method/fql.query', 
    data: { 
     query: 'SELECT like_count FROM link_stat WHERE url="' + fburl + '"', 
     format: 'json' 
    } 
    }).success(function (data) { 
    container.text(data[0].like_count + ' Likes'); 
    }); 
}); 

При запуске сценария я получаю следующее сообщение об ошибке:

Uncaught TypeError: Cannot read property 'like_count' of undefined

Я искал интернет для решения, но я не могу найти решение этой проблемы. Надеюсь, кто-то может мне помочь!

+1

данные [0] не определена. –

+0

Либо используйте отладчик; установите точку перерыва в 'container.text (data [0] .like_count' и посмотрите на« данные », чтобы увидеть, что это такое, или« console.log (data) »и посмотрите, какие данные вы получаете в консоли. Один из способов или другой 'data [0]' не определен. Как правило, это означает, что вы не имеете правильного понимания «данных», которые вы собираетесь получить от своего вызова API, или вы не выполняете проверку действительности на этих 'данных', которые вы должны делать. – Makyen

+0

Знаете ли вы:« [Начиная с 8 августа 2016 года, FQL больше не будет доступен и не может быть запрошен. Чтобы перенести приложение, используйте средство обновления API, чтобы просмотреть API-интерфейс Graph вы можете сделать вместо этого.] (https://developers.facebook.com/docs/reference/fql/) « – Makyen

ответ

1

FQL устарела, это правильный API, чтобы получить подобные страницы:

https://graph.faebook.com/[page-id]?fields=fan_count 

Вы можете проверить его в API исследователя: https://developers.facebook.com/tools/explorer/?method=GET&path=page-id%3Ffields%3Dfan_count&version=v2.7

Имейте в виду, что это требует маркер доступа , поэтому вам не следует делать эту клиентскую сторону с помощью токена доступа к приложениям. Вы также должны рассмотреть вопрос о кешировании результата, а не ударять ограничения API, если есть много пользователей.

Более подробная информация о маркерах:

0

Это означает, что data[0] is undefined, что означает, что вы не можете получить доступ к атрибуту like_count.

Попробуйте отобразить объект data, чтобы увидеть его атрибуты/элементы, которые вы можете отображать/использовать.

+0

Правда ... нужно спать, thx –

+1

Был там. Я знаю, как это происходит. – Makyen

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