2010-12-01 4 views
6

Я хочу отобразить другое сообщение, если пользователь в настоящее время вошел в систему на facebook и любит текущую страницу. Я понимаю:facebook graph api определить, нравится ли пользователю url

FB.Event.subscribe('edge.create', function(response) { 
    // you like this 
}); 

Какой будет срабатывать, когда пользователь любит страницу, но после перезагрузки страницы, как вы определяете, они уже как на текущей странице?

Спасибо!

ответ

0

Из API Graph вы можете получить любит пользователя по его идентификатору, как:

https://graph.facebook.com/ID/CONNECTION_TYPE

поэтому для получения подобных вы кладете маркер доступа и:

https://graph.facebook.com/me/likes?access_token=2222222222222222

тогда ищите свою страницу, если она понравилась или нет.

Однако вы всегда можете попробовать FQL-запросы, которые я не пробовал для Likes на самом деле.

Я надеюсь, что это помогло.

+0

Для этого вам нужен токен ** ** для доступа пользователя. – ceejayoz 2012-02-17 02:32:49

+0

Да, я упомянул, что во втором примере ссылка – Rabea 2014-10-08 21:59:05

2

Смысл: вы описываете страницу как «текущую страницу». Я понимаю, что она находится на вкладке iframe. Если это так, подписанный запрос предоставит вам эту информацию как $decode_signed_request = array('page' => array('liked' => true/false)).

В противном случае вы можете предоставить страницу холста параметрами GET fb_page_id, которая должна включать параметр fb_sig_added к запросу сервера с 0/1 в зависимости от того, является ли пользователь фанатом этой страницы. (Это может потребовать отключения OAuth 2.0 в ваших настройках миграции)

Если вы говорите о подобном социальном плагине с открытым графиком, вы не можете легко узнать, является ли пользователь вентилятором без установки приложения. Если у вас есть, вы можете сделать api-вызов до /me/likes, который вернет список всех понравившихся ему пользователей и выполнит поиск идентификатора объекта, который вы тестируете.

+0

Это работает, только когда приложение установлено как вкладка страницы facebook. И говорит, понравился ли текущий пользователь или нет эта страница на facebook. – challet 2013-01-29 17:33:14

3

Я уверен, что вы не можете делать то, что хотите (в этом контексте).

Посмотрите на эту страницу: http://fbrell.com/fb.api/does-like

Глядишь вам нужно пользователю одобрить разрешение на просмотр подобных.

Это огромный риск для безопасности, позволяющий кому-то видеть «понравившиеся» пользователи - даже для текущей страницы. Подумайте об этом, вы можете легко обмануть текущую страницу и притвориться любой страницей.

НО ...

То, что я рекомендую вам сделать, это просто установить куки для собственной выгоды (в JavaScript), когда пользователь «любит» свою страницу. Предполагая, что вы получаете большой процент ваших «Likes» с этой страницы, вы можете смело сопоставить присутствие файла cookie с «Like».

Я видел некоторые исключения из-за этого, но он работает (по крайней мере, в Chrome).

1

Вы более безопасны с использованием API-интерфейса Graph, так как Facebook находится в процессе обесценивания своего REST API.Чтобы получить, нравится ли пользователю ваша страница, вам понадобится идентификатор страницы и токен доступа вашего приложения.

https://graph.facebook.com/me/likes/PAGE_ID?format=json&access_token=ACCESS_TOKEN

  • Где PAGE_ID страница идентификатор вы хотите проверить.
  • и ACCESS_TOKEN - это токен доступа к приложениям.
0

сохранить идентификатор пользователя или third_party_id в базе данных, когда пользователь понравилась ссылка

получить third_party_id

graph.facebook.com/me/?fields=third_party_id & access_token = ххх

0
https://graph.facebook.com/{FB_USER_ID}?fields=likes.target_id(167584559969748)&access_token={VALID_ACCESS_TOKEN} 

показывает данные, если пользователю понравилась эта страница поклонника Facebook.

или

https://graph.facebook.com/{FB_USER_ID}?fields=likes.fields(link) 

показывает список понравившихся ссылок, откуда вы можете получить по ссылке, которую вы ищете.

Все они нуждаются в «user_likes» и/или friend_likes разрешениях.

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