Omniauth 2.0 返回零值(Twitter API)

Omniauth 2.0 returning nil values (Twitter API)

一些背景信息:我是软件开发的新手,这是我第一次 post 在 Whosebug 上,所以如果我对如何完成有任何错误,请告诉我。

在完成 GoRails 教程(Rails 初学者)时发现问题。我在 Whosebug 和其他在线资源上搜索了几个小时,多次修改了我的代码,几乎完全放弃了希望

问题总结:

通过 Twitter API v2 使用 Omniauth 2.0 连接 Twitter 帐户,我的 omniauth return 哈希仅包含零值

我不确定 Twitter 是不是因为我的基本访问级别而有意提供这些数据,还是我的代码中有错误才是问题所在

当我尝试连接时来自 Twitter 的响应如下所示(排除了第一位,因为它包含 API 个键):

@response=#<Net::HTTPForbidden 403 Forbidden readbody=true>> raw_info=#<OmniAuth::AuthHash errors=#<Hashie::Array [#<OmniAuth::AuthHash code=453 message="You currently have Essential access which includes access to Twitter API v2 endpoints only. If you need access to this endpoint, you’ll need to apply for Elevated access via the Developer Portal. You can learn more here: https://developer.twitter.com/en/docs/twitter-api/getting-started/about-twitter-api#v2-access-leve">]>>> info=#<OmniAuth::AuthHash::InfoHash description=nil email=nil image=nil location=nil name=nil nickname=nil urls=#<OmniAuth::AuthHash Twitter="https://twitter.com/" Website=nil>> provider="twitter" uid="1369880016"

以我有限的知识,我相信我正在寻找这部分的散列:

<OmniAuth::AuthHash::InfoHash description=nil email=nil image=nil location=nil name=nil nickname=nil

看起来 Twitter return 为我请求的内容设置了 nil 值(是由于访问级别还是我的错误)

在我的 OmniauthCallbacksController 中我有:

  def twitter
    Rails.logger.info auth

    Current.user.twitter_accounts.create(
      name: auth.info.name,
      username: auth.info.nickname,
      image: auth.info.image,
      token: auth.credentials.token,
      secret: auth.credentials.secret,
    )

    redirect_to twitter_accounts_path, notice: "Successfully connected your account"
  end

  def auth
    request.env['omniauth.auth']
  end

描述您尝试过的内容:

这是我的代码中的错误还是由于 Twitter 没有return值

我现在陷入了僵局。我可以继续本教程,但我不想成为一个半生不熟的开发人员,所以我决心了解我做错了什么。如果可以请帮忙

OmniOAuth 仍在使用 Twitter API OAuth 1.0A,根据错误消息,它看起来可能正在尝试调用 /1.1/account/verify_credentials 作为身份验证流程的一部分。为了使用该端点,您的项目和应用程序需要具有高级访问权限(基本访问权限目前仅提供对 v2 Twitter API 的访问权限)。

如果您获得更高的访问权限以访问较旧的端点,这应该会有所帮助。