поймать нравится / не нравится в моем приложении на холсте

Я добавил кнопку like на страницу приложения холста, которая фактически настроена на страницу приложения facebook.

Я хотел бы, чтобы всякий раз, когда пользователь нажимал «Нравится» или «Не нравится» на моей странице, на мой сервер будет отправлен запрос, уведомляющий о том, что пользователю понравилась или не понравилась страница приложения.

Я могу поймать эти события, используя следующий код:

FB.Event.subscribe('edge.create', function(response) {
    alert('You liked the URL: ' + response);

});
FB.Event.subscribe('edge.remove', function(response) {
    alert('You disliked the URL: ' + response);
});

Я могу просто проверить, соответствует ли ответ моей странице приложения facebook. вопрос в том.. после того, как я поймал лайк или дизлайк, как мне переслать его на достаточно безопасный сервер? как я могу отправить запрос на сервер, не отправляя идентификатор facebook в качестве параметра публикации/получения?

я хочу отправить его на сервер таким образом, чтобы сервер мог получить информацию о сеансе facebook и оттуда получить идентификатор пользователя или любым другим безопасным способом.

пример:

если я просто позвоню http://mysite/liked_my_app?uid=4534534543

затем пользователь замечает этот запрос и начинает отправлять like_my_app с поддельными uid.

есть ли способ предотвратить это как-то?

Благодарность


person ufk    schedule 27.11.2011    source источник


Ответы (1)


Вместо использования UID пользователя перешлите файл signed_request. Только вы можете декодировать подписанные запросы, поступающие из вашего приложения, потому что вам нужно использовать app_secret для его декодирования.

Еще одно возможное решение (в зависимости от того, что именно вы хотите сделать, когда вы подтверждаете событие "нравится/не нравится") – периодически проверять количество лайков вашей страницы/приложения, например, в задании cron. Когда пользователю нравится ваша страница/приложение, вы можете получить его UID (возможно, и другую информацию), а также сделать перекрестные ссылки на списки из последнего задания cron.

person Lix    schedule 27.11.2011