Facebook Connect Ping与重定向网址?

时间:2009-12-28 01:18:37

标签: php facebook

我几乎有facebook连接在我的网站上以我需要的方式工作,我还需要解决几个bug,下面是来自facebook连接文档,它列出了FB connect设置下面的3个不同的URL选项。这对我来说非常有用,因为当用户第一次使用facebook在我的网站上登录时,我需要创建一个包含来自facebook的个人资料数据的mysql个人资料。

好的,所以我有点困惑,我理解一个重定向网址只是将浏览器重定向到一个页面,但你可以看到我保存的下面这两个链接都是一个回调网址,所以我认为它将facebook发布数据发送到我提供的URL?如果我是正确的,我怎么知道它在Ping中发回的数据?

1)

  

授权后回拨网址:Facebook   在用户授权时ping此URL   你的申请是第一次。   您也可以将users.isAppUser调用到   确定用户是否已获得授权   你的申请。

2)

  

授权后重定向网址:您可以   之后将用户重定向到此URL   用户授权您的申请   第一次。您可以使用此URL   只有用户授权您的   通过login.php申请而不是   登录对话框。

3)

  

删除后回拨网址:Facebook   当用户删除您的URL时ping网址   应用


当用户在浏览器中重定向时,我可以运行这样的代码从facebook获取个人资料数据,但我不确定facebook ping数据的时间?

$user_details=$fb->api_client->users_getInfo($fb_user, array('last_name', 'first_name', 'proxied_email','birthday_date', 'sex', 'is_app_user', 'current_location', 'about_me', 'activities', 'interests', 'relationship_status', 'pic_big', 'pic_small', 'books'));  

$firstName = $user_details[0]['first_name']; 
.....

2 个答案:

答案 0 :(得分:2)

我不认为我完全理解你的问题,所以我会尽力回答我的问题 - 如果有任何遗漏,请在此处发表评论,我会相应地编辑答案。

你认为Facebook在ping时发送POST数据是对的。所以,基本上你在端点上做的事情(你告诉facebook要ping的网址)是读取你想要的数据的$_REQUEST字典。可以找到Facebook在ping上发送的每个参数的列表here

会发生以下情况:

  1. 用户点击通过Facebook Connect与您的网站建立连接
  2. Facebook登录页面向用户显示确认是否允许此操作的确认
  3. 如果允许,Facebook会将POST数据发送到指定的网址
  4. 当用户通过Facebook Connect从您的网站中删除时,也会发生同样的情况。

    请注意,您应该仔细验证端点上收到的数据。由于您要在每个帖子请求中创建持久数据,至少确保只能从Facebook收到请求。

    或者,您可以在授权后将用户重定向到某个位置,调用users_getInfo并检查is_app_user是否为真。如果是这样,您继续在数据库上创建实体。

答案 1 :(得分:0)

1)授权后回拨是Facebook在用户授权您的应用程序/站点时将一些数据发布到的URL。这是通过任何方式,而不仅仅是通过Facebook Connect。您应保留随此传递的用户ID,以便跟踪哪些用户已授权您的应用程序/站点。然后,您可以使用用户ID向用户发送消息(即通知),这是典型的应用程序到用户消息。 这是“ping”因为Facebook忽略了你发送的任何回复。你没有回应。

2)用户授权您的应用程序后,您可以选择让Facebook将用户发送到此URL。例如,欢迎页面和/或介绍。这种情况不会在Facebook Connect下发生,只能在Facebook平台下进行。

3)完全与#1完全相反。 Facebook只是让你知道有人删除/取消了你的申请。同样,您无需回复​​。

项目#1和#2是您如何跟踪哪些用户ID已授权您的应用程序。你不能为此查询Facebook。 如果用户登录Facebook并与您的网站建立了连接,Facebook会在您的域名下写一个cookie。您可以随时在用户到达时检查此cookie并将其自动登录到您的站点。当然,您应该验证cookie数据。这样做的说明如下: http://wiki.developers.facebook.com/index.php/Verifying_The_Signature