pyrocms社交模块:如何用facebook连接注册新用户

时间:2012-12-17 18:10:49

标签: facebook codeigniter pyrocms

我还是CI和PyroCMS的新手,我正在尝试使用自定义模块中的Social module来实现Facebook登录,这看起来像我想要的一切,但我显然缺少一些基础知识(我找不到brief readme以外的任何文档!)

到目前为止,我已经看过intro video,并成功启用了Facebook。我可以通过FB连接并查看/ social / linked中列出的FB,但我脑海中存在一些混淆:我有两个用户组:admin和user。

我正在尝试构建的流程是:

  • 用户到达该网站并进行调查
  • 用户填写调查表,然后被要求注册(我明白这是非常规的)
  • / signup有一个facebook连接按钮,由社交模块提供
  • 用户点击连接按钮,并在Facebook的弹出窗口中授予权限
  • 用户应该被引导回/注册,(或者可能被重定向到/ user / registration),其中包含一些从Facebook填写的详细信息(例如,电子邮件,姓名)
  • 在提交时,用户应添加到users表中,作为“用户”组(不是管理员)的成员,不需要激活电子邮件
  • 发送电子邮件,显示感谢页面
  • 在返回网站时,用户应使用facebook connect访问他们的现场个人资料。

我已经阅读了很多关于这个问题的主题,这些主题已经形成了这些期望......

这是我在的地方:

  • 用户到达,填写调查,点击连接按钮
  • 用户被重定向到主页,该主页显示标准页面(不由我的模块处理)。我需要回到/注册!

基于this,我尝试过设置:

$this->session->set_userdata('redirect_to', '/signup');

我认为是正确的控制器方法(检查用户是否在发送电子邮件之前登录,然后调用模板构建以显示社交按钮),但无济于事。

(编辑:我现在看到上面的代码与用户模块有关,而不是社交模块..也许我可以移植一些更改......)

我的问题:

  • 我是在正确的轨道上,还是走错了方向?!
  • 我认为如果系统中存在电子邮件地址,FB帐户将与现有用户匹配吗?
  • 我只有一个FB帐户,我已获得该应用程序的授权,并且我正在以用户身份连接 - 这是否可行,或者我是否需要单独的FB帐户作为用户进行测试?

其他说明:

  • 我正在Chrome中测试该网站,在Firefox中以管理员身份登录。
  • Facebook是我的测试用例,我正在考虑最终支持FB,LinkedIn,谷歌和Twitter。

唷!感谢任何反馈,蒂姆

2 个答案:

答案 0 :(得分:2)

我将尝试回答您的一些问题,因为我目前正在尝试使用完全相同的社交模块以及一些插件。

  我是正确的认为FB帐户将匹配   现有用户,如果系统中存在电子邮件地址?

是的,你是。我自己检查了一下,我的谷歌(gmail地址)无法连接,而我的hotmail(注册邮箱)可以解决这个问题。您必须在所有社交网站中同步电子邮件,更改登录系统(例如,允许用户名登录)或手动连接帐户设置中的多封电子邮件。

  

我只有一个FB帐户,我已获得该应用程序的授权,并且我正在以用户身份连接 - 这是否可行,或者我是否需要单独的FB帐户作为用户进行测试?

我建议你让另一个FB帐号的人测试系统(更好的保存然后抱歉)但在我的情况下,我没有使用其他(普通)帐户登录的麻烦。

  

我是在正确的轨道上,还是走错了方向?!

这是你的第一个问题,但我会回答这个问题,因为我没有测试过自己:

Facebook App有一个名为“网站网址”的设置。这是将被重定向的URL。只需将其更改为您希望的页面即可。您还可以尝试更改social / controllers / social.php中的以下行:

第245行(重定向:用户在FB连接后登录)

redirect($this->input->get('success_url') ? $this->input->get('success_url') : 'social/linked');

第283行(重定向:用户必须填写一些其他字段才能完成注册)

redirect('users/register');
祝你好运!

答案 1 :(得分:2)

介绍视频展示了社交模块的整个范围。前端注册,前端用户帐户链接以及整个系统的后端帐户链接。

如果您希望集成自定义功能,自定义用户流程以及问题中列出的其他内容,则需要对模块进行一些自定义工作。劈开它,扩展它,发送一些拉取请求,无论如何,但遗憾的是它不能做“所有与所有地方集成的东西”开箱即用。 : - /