使用OAuth从Twitter获取名字/姓氏/电子邮件

Rap*_*ure 6 ruby-on-rails oauth twitter-oauth ruby-on-rails-3

我只使用omniauth允许使用facebook/google/twitter登录我的网站.

我存储名字,姓氏和电子邮件.但是,当我从oauth提出twitter auth哈希时,我只会在auth哈希中获得昵称,名称,位置,图像,描述和网址.

我可以在初始化程序中传递一个范围来获取用户的电子邮件并将名称分解为first_name,last_name字段吗?

iwa*_*bed 8

Twitter不会发送用户电子邮件,因此您将无法从Twitter API获取该信息.相反,您必须要求用户在您的注册表单上输入他们的电子邮件地址.

至于拆分名称,一旦你使用类似的东西返回哈希,你就会这样做:

social_params ||= request.env["omniauth.auth"]
fullname = social_params["user_info"]["name"].split(' ')
first_name, last_name = fullname[0], fullname[1]
puts "first name is #{first_name} and last name is #{last_name}"
Run Code Online (Sandbox Code Playgroud)

只要记住这last_name可能是nil如果他们没有在他们的名字空间或他们没有给一个姓.这也没有考虑到许多人在其他文化中有多个姓氏的事实.

  • 您可以随后添加它以检查`if social_params ["provider"] =="twitter"`并在必要时重定向到注册表单. (3认同)