Можно ли получить количество лайков в фейсбуке за URL? - PullRequest
4 голосов
/ 22 января 2011

В идеале я хотел бы сделать это, используя только сценарии на стороне клиента javascript.Если это невозможно, я бы хотел сделать это так, чтобы сервер выполнял наименьшее количество работы.

Любая помощь приветствуется.

Ответы [ 3 ]

16 голосов
/ 05 мая 2011

На самом деле, https://graph.facebook.com/?ids=http://www.stackoverflow.com вернет количество SHARES для этого URL, которое отличается от количества лайков, поскольку оно также включает комментарии и другие формы обмена. Это может или не может быть важным отличием.

В Graph API 2.1+ есть два метода ... хотя теперь оба требуют токены доступа. Ниже описано, как получить токен доступа, который длится вечно и не связан с сеансом пользователя.

Количество лайков для URL :

  1. Сначала необходимо получить идентификатор URL: https://graph.facebook.com/?id=http://www.stackoverflow.com (для этого вам не нужен токен доступа)
  2. Когда у вас есть идентификатор, вы можете получить счетчик лайков через конечную точку лайков. Вы можете получить доступ к общему количеству в итоговой части ответа json. Вот пример запроса: https://graph.facebook.com/10150180465825637/likes/?summary=true&access_token=TOKEN_GOES_HERE (вам нужен действительный токен доступа здесь, но вы можете использовать токен доступа к приложению - см. ниже)

Счетчик лайков для страниц Facebook :

  1. Вы можете получить аналогичный счет напрямую через: https://graph.facebook.com/FacebookDevelopers/?fields=likes&access_token=TOKEN_GOES_HERE (вам нужен действительный токен доступа здесь, но вы можете использовать токен доступа к приложению - см. ниже)

Как получить постоянный токен доступа (App Access Token) :

Вы можете использовать токен доступа пользователя, чтобы получить эти результаты, но часто для сценариев с одинаковым счетом, что не вариант.

Вместо этого вам нужно будет использовать токен доступа к приложению, который позволит вам запускать скрипт «в автономном режиме» без активного сеанса токена доступа пользователя. Ранее вам приходилось запрашивать токен доступа к приложению, теперь это так же просто, как объединить идентификатор приложения и секрет с | следующим образом:

MY_APP_ID|MY_APP_SECRET

Другими словами, полный запрос сверху будет выглядеть примерно так:

https://graph.facebook.com/10150180465825637/likes/?summary=true&access_token=MY_APP_ID|MY_APP_SECRET

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


В предыдущих версиях Graph API (2.0 и ниже) вы могли использовать FQL:

ВЫБРАТЬ like_count FROM link_stat WHERE url = "http://www.stackoverflow.com"

Здесь - фактическая ссылка. На момент написания этой статьи около 200 лайков и более 2000 акций, так что это большая разница ...

3 голосов
/ 18 сентября 2012
2 голосов
/ 22 января 2011

Это довольно просто, несколько других anwsers на SO уже показали хорошие примеры.В основном используйте Graph API: http://developers.facebook.com/docs/api для запроса информации о вашем URL, например: https://graph.facebook.com/?ids=http://www.stackloverflow.com.API возвращает JSON-объект, который должен быть прост в использовании с Javascript.

...