我几乎有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'];
.....
答案 0 :(得分:2)
我不认为我完全理解你的问题,所以我会尽力回答我的问题 - 如果有任何遗漏,请在此处发表评论,我会相应地编辑答案。
你认为Facebook在ping时发送POST数据是对的。所以,基本上你在端点上做的事情(你告诉facebook要ping的网址)是读取你想要的数据的$_REQUEST
字典。可以找到Facebook在ping上发送的每个参数的列表here。
会发生以下情况:
当用户通过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