Facebook登录的基础知识

时间:2013-10-13 17:18:28

标签: facebook-javascript-sdk facebook-php-sdk facebook-login

我很难理解Facebook在用户登录时如何与我的服务器通信(在批准我的Facebook应用程序之后)。我一直在浏览指南和其他Stackoverflow问题几个小时,但似乎无法掌握它。 http://developers.facebook.com/上的文档也没有多大帮助。

我想要做的是在我的页面上设置一个Facebook登录按钮,打开Facebook登录窗口(使用Facebook的Javascript SDK)。当用户登录到Facebook并批准我的应用程序时,我想获取用户的数据(姓名,电子邮件,年龄)并将其存储在我的数据库中。如何获取此数据 SECURELY (服务器端确认/授权)?

基本上,按此顺序;

  • 用户点击我网站上的登录按钮
  • 显示弹出窗口,用户可以在其中登录&批准Facebook上的应用程序
  • 通过获取用户的user_id
  • 检查用户是否已登录
  • 如果用户是第一次登录,则用户的Facebook数据(具体为:全名,图片,电子邮件地址,年龄)由我收集并存储在我的数据库中

用户在Facebook弹出窗口中记录/批准应用程序后,用户的数据会在哪里发送?

1 个答案:

答案 0 :(得分:1)

用户批准应用后,用户的数据不会在任何地方发送。您需要进行API调用才能检索数据。

Facebook是OAuth提供商。您使用Facebook登录,因此用户可以授予您访问她的Facebook数据的权限(例如电子邮件,朋友列表,消息,新闻源等)。您还可以获得代表用户执行操作的权限(例如上传照片,发布到新闻源等)。在启动OAuth流程时,您可以指定要向用户请求的权限。这些被称为范围

弹出窗口中发生的授权流程允许用户授予您访问所请求数据的权限。此权限表示为访问令牌,您每次想要检索用户数据或尝试代表用户执行某些操作时都必须使用该权限。

获得访问令牌后,您可以使用Facebook Graph API从Facebook获取您想要的任何数据。如果您尝试访问某些未获得权限的数据,则API方法将返回拒绝访问错误。

我想在Facebook开发者网站上提供更多关于范围和访问权限的链接,但我的声誉得分太低了:)