如何使用 CodeIgniter 3.1.0 将 Facebook 用户基本信息保存到数据库

How to save Facebook user basic information to database with CodeIgniter 3.1.0

我正在使用 https://github.com/darkwhispering/facebook-sdk-codeigniter,它使用 PHP SDK v5 登录 facebook。我希望能够在首次登录时使用电子邮件和姓名等基本信息将每个用户保存到用户数据库中。接下来,如果在进一步登录时 facebook 上的数据已更改,我希望数据在数据库中更新。最后,我希望能够通过我自己的网站为每个用户添加更多自定义数据。

我是 PHP 和 CI 的新手。我知道我需要做一个模态。请多多指教。

这是我从sdk中拉取的数据$user = $this->facebook->request('get', '/me?fields=id,name,first_name,last_name,email')

我可以用<?=$user['name']; ?>

来叫名字

这是您的工作流程。

1.我希望能够在首次登录时使用电子邮件和姓名等基本信息将每个用户保存到用户数据库

您可以将 facebook 用户名设置为数据库中的唯一标识符。这样,您就可以在用户登录您的应用程序时对其进行检查。创建一个用于身份验证的库,并使用它来检查控制器功能中的访问权限。一旦数据验证成功,使用模型更新数据库。

2。如果在进一步登录时 facebook 上的数据已更改,我希望在数据库中更新数据

你可以编写一个类似于上面的脚本来匹配用户登录时从 facebook 获取的数据。对于图像,你可以使用 graph api https://graph.facebook.com//picture?redirect=false 并保存图片名称或 ID 在您的数据库中是唯一的,以将其与当前 ID 匹配。

您可以编写一个 cron 来轮询 facebook api 并使用访问令牌检查详细信息。 (取决于您要更新哪些字段以及 facebook 在其 api 中有多少访问限制) Is there a way to check if Facebook access token is still valid?。 您可以使用相同的库来创建用于执行此检查的函数。使用相同的模型进行数据更新。

3。我希望能够通过我自己的网站为每个用户添加更多自定义数据。

这将是您的正常 PHP 代码,不会处理 facebook。用户登录后,您可以允许他通过您网站上的表格输入更多详细信息。这将是您应用程序中的另一个控制器,它将用户表单显示为视图并连接到模型以更新数据库。