在我的画布应用程序中捕捉喜欢/不喜欢

时间:2011-11-27 17:12:50

标签: facebook facebook-like facebook-javascript-sdk

我在画布应用程序页面添加了一个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 id作为post / get参数发布的情况下将请求发送到服务器?

我希望以服务器能够获取facebook会话信息并从那里获取用户ID或任何其他安全方式的方式将其发送到服务器。

示例:

如果我只是致电http://mysite/liked_my_app?uid=4534534543

然后用户注意到此请求并开始发送带有假uid的likes_my_app。

有没有办法以某种方式防止这种情况?

感谢

1 个答案:

答案 0 :(得分:1)

转发signed_request,而不是使用用户的UID。只有可以解码来自您的应用程序的已签名请求,因为您必须使用app_secret对其进行解码。

另一种可能的解决方案(取决于您确认喜欢/不喜欢事件时想要做什么)是每隔一段时间检查一次您的页面/应用程序,例如计算cron作业。当用户喜欢您的页面/应用程序时,您可以检索他的UID(也可能是其他信息),并且您可以交叉引用上一个cron作业中的列表。