相关疑难解决方法(0)

有没有办法在使用OAuth验证他/她的Twitter身份后获取用户的电子邮件ID?

我是OAuth的新手,一直在玩Twitter API.通过发出请求,我可以在身份验证后获取用户的凭据http://api.twitter.com/1/account/verify_credentials.xml.响应包含用户ID,屏幕名称等,但不包含电子邮件ID.

是否可以检索用户的电子邮件ID?

更新

如果您特别要求扩展权限,我相信Facebook会提供此信息.Twitter有类似的东西吗?

twitter oauth twitter-oauth

85
推荐指数
2
解决办法
4万
查看次数

设计Twitter,Cookie溢出错误?

我正在尝试使用本指南将twitter集成到设计中.我基本上把所有出现的facebook都用twitter取而代之.但是,当我使用Twitter登录时,我收到以下错误:

ActionDispatch::Cookies::CookieOverflow (ActionDispatch::Cookies::CookieOverflow):
Run Code Online (Sandbox Code Playgroud)

在以下网址:

http://localhost:3000/users/auth/twitter/callback?oauth_token=something&oauth_verifier=blah
Run Code Online (Sandbox Code Playgroud)

有什么好方法可以解决这个问题吗?

谢谢!

twitter ruby-on-rails devise

27
推荐指数
2
解决办法
9030
查看次数

Rails 5,Devise,Omniauth,Twitter

我知道这已被多次询问,但答案对我来说永远不会完全接受.

因此,我正在关注Ryan Bates关于这个主题的Railscast,并将其与官方Devise Omniauth指南(基于FB)混合,但我只是没有像我期望的那样让它工作,所以我会喜欢一些帮助.

我有一个Users::OmniauthCallbacksController看起来像这样:

class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
  def all
    @user = User.from_omniauth(request.env["omniauth.auth"])

    if @user.persisted?
      sign_in_and_redirect root_path, :event => :authentication #this will throw if @user is not activated
      set_flash_message(:notice, :success, :kind => "Twitter") if is_navigational_format?
    else
      session["devise.twitter_data"] = request.env["omniauth.auth"].except("extra")
      flash[:notice] = flash[:notice].to_a.concat resource.errors.full_messages
      redirect_to new_user_registration_url
    end
  end

  alias_method :twitter, :all

  def failure
    redirect_to root_path
  end
end
Run Code Online (Sandbox Code Playgroud)

然后我也有两种方法 User.rb

  def self.from_omniauth(auth)
    where(provider: auth.provider, uid: auth.uid).first_or_create do |user|
      user.update(
        email: auth.info.email,
        password: Devise.friendly_token[0,20], …
Run Code Online (Sandbox Code Playgroud)

twitter ruby-on-rails devise omniauth ruby-on-rails-5

9
推荐指数
1
解决办法
1565
查看次数