Ответ 1
Чтобы получить счет, добавьте? summary = 1 в конец: https://graph.facebook.com/125909647492772_502974003098530/comments?summary=1
кажется, что Facebook изменил результат сообщений, несколько недель назад было возможно прочитать комментарий с поста напрямую
https://graph.facebook.com/125909647492772_502974003098530
у вас есть что-то вроде
...
"comments": {
"data": [
{
"id": "502974003098530_78616446",
"from": {
"name": "Mathias Fritz",
"id": "526559276"
},
"message": "saugeil!",
"can_remove": false,
"created_time": "2013-03-26T14:58:01+0000",
"like_count": 1,
"user_likes": false
}
],
"paging": {
"cursors": {
"after": "MQ==",
"before": "MQ=="
}
},
"count": 1
но теперь счет отсутствует.
Я провел некоторое исследование документации по графику, но единственное изменение в этом направлении, похоже, состоит в том, что комментарии теперь могут содержать комментарии... и эти комментарии учитываются в поле с именем comment_count.
Есть ли способ получить общий счетчик комментариев?
Чтобы получить счет, добавьте? summary = 1 в конец: https://graph.facebook.com/125909647492772_502974003098530/comments?summary=1
У меня была такая же проблема, просто добавив likes.summary(true),comments.summary(true)
в параметр в "полях" для меня.
например. Я использовал https://graph.facebook.com/me/feed?access_token=ACCESS_TOKEN&fields=story,from,story_tags,likes.summary(true),comments.summary(true)
вместо https://graph.facebook.com/me/feed?access_token=ACCESS_TOKEN
Также вы можете добавить другие параметры, если хотите; разделенных символом a,
summary=true
- это то, что вы ищете
Получить количество просмотров:
114916098537132_1265715836790480/likes?summary=true
Получить количество комментариев
114916098537132_1265715836790480/comments?summary=true
Получить количество акций:
114916098537132_1265715836790480?fields=shares
И последнее [объединение всех 3]
114916098537132_1265715836790480?fields=shares,likes.summary(true),comments.summary(true)
Улучшенная версия (добавьте ограничение (0), чтобы удалить список понравившихся и получить только сводку):
114916098537132_1265715836790480?fields=shares,likes.limit(0).summary(true),comments.limit(0).summary(true)
Вы можете получить общее количество комментариев через FQL. См. Этот вопрос ниже в качестве справки:
API Facebook - количество комментариев через FQL
Здесь вам нужен запрос: SELECT comment_info FROM stream WHERE post_id = ...
Это прекрасно работает со мной:
fields=shares,created_time,comments.summary(true).limit(0)
Этот комментарий возвращается в summary
и возвращает 0 комментариев в то же время, что идеально, поскольку вам нужен только комментарий.
Если вы хотите рассчитать все на Facebook. (Этот номер отображается для пользователя Facebook)
Вместо графического API вы должны использовать FQL (Facebook Query Language).
Справочник по языку запросов Facebook
В этой ситуации вы должны запросить
SELECT comment_info FROM stream WHERE post_id = ...
Вы можете делать такие запросы:
{pageid}/posts?fields=comments.summary(1){id}
Он вернет список сообщений, включая количество комментариев каждого сообщения. Здесь я вернул только идентификатор комментария, потому что мне нужно только количество комментариев за сообщение, но, конечно, вы можете включить много других полей:
{pageid}/posts?fields=comments.summary(1){id,message},id
Если у вас есть приложение в Facebook, его очень просто без входа в систему, вы можете получить его.
https://graph.facebook.com/?id={URL}&fields=engagement&access_token={your-app_id}|{your-app_secret}
Ответ будет таким:
{
"engagement": {
"reaction_count": 36,
"comment_count": 2,
"share_count": 20,
"comment_plugin_count": 3
},
"id": "https://www.example.com"
}
Ссылка: https://developers.facebook.com/docs/facebook-login/access-tokens
Или чтобы сделать меньше изменений для вас, используя код, используйте:
$.each(json.data,function(i,fb){
...
var commentsCount = 0
if(fb.comments!=undefined){
commentsCount=fb.comments.data.length
}
...
}
commentsCount содержит количество комментариев для активного ребенка
Попробуйте следующее:
{
"data": [
{
"id": "447235535389660_1226199",
"from": {
"name": "Harjeet Walia",
"id": "100004980601083"
},
"message": "Price",
"can_remove": false,
"created_time": "2013-09-06T10:39:01+0000",
"like_count": 0,
"user_likes": false
},
{
"id": "447235535389660_1226152",
"from": {
"name": "Shoba Dhyani Jakhmola",
"id": "100000906896060"
},
"message": "baap re kitna mehnga !",
"can_remove": false,
"created_time": "2013-09-06T10:05:09+0000",
"like_count": 0,
"user_likes": false
}
],
"paging": {
"cursors": {
"after": "MQ==",
"before": "NA=="
}
}
}
затем
int commentCount = <JsonNode Var with above data>.path("comments").path("data").size();
Здесь commentCount
будет указывать количество комментариев.