首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Steam Web API问题。Ruby on Rails omniauth-steam

Steam Web API问题。Ruby on Rails omniauth-steam
EN

Stack Overflow用户
提问于 2015-05-22 21:45:22
回答 3查看 858关注 0票数 0

您好,我正在学习本教程http://grschafer.com/guides/2013/09/07/steam-openid-and-webapi-with-rails/

我设置了steam的登录按钮,我可以点击我的帐户,但当我试图返回我的主页时,我得到了这个错误。

nil:NilClass提取的源代码的NoMethodError未定义方法‘[]’(在第39行附近):

代码语言:javascript
运行
复制
  def player
    @player ||= raw_info["response"]["players"].first
  end

  def steam_id

谢谢您抽时间见我。

EN

回答 3

Stack Overflow用户

发布于 2015-05-22 22:12:54

我假设您的问题在于raw_info很可能是nil,因此抛出错误,因为您试图访问其中不存在的值。在这个阶段尝试使用调试器(如果您有像better_errors这样的gem或者正在使用Rails4,那么您可能有一个调试器)并检查raw_info的值。

您还可以在声明实例变量之前检查raw_info是否存在。

票数 0
EN

Stack Overflow用户

发布于 2015-05-23 09:43:31

如果没有更多的上下文,很难说您的代码中发生了什么,但我90%确定您收到了这个错误,因为您正在尝试访问omniauth-steam模块中的raw_info散列。你不能这样做,因为在omniauth策略之外是不可访问的,例如,在你的控制器或视图中。如果您在应用程序中定义了自己的raw_info,我们将无法告诉您发生了什么,除非您发布该代码。

此外,omniauth raw_info散列通常只包含一个用户的身份凭证。请看这里的源代码:

https://github.com/reu/omniauth-steam/blob/master/lib/omniauth/strategies/steam.rb

甚至没有响应键,所以我不确定您的代码片段到底是要做什么。

简而言之,这里的信息太少,无法说明您的代码到底发生了什么。

票数 0
EN

Stack Overflow用户

发布于 2015-05-25 10:52:34

我找到解决方法了!原来你需要在配置文件夹中的secrets.yml文件中的ENV密钥旁边输入Steam API密钥。

代码语言:javascript
运行
复制
production: secret_key_base: <%= ENV["YOUR_STEAM_KEY"] %>

另外,作为新的figaro版本的附注

代码语言:javascript
运行
复制
$ figaro install

有关Secret_token.rb更改的更多信息:

secret_token.rb存在于Rails3和Rails4.0应用程序中;它不存在于Rails4.1应用程序中。在Rails4.1中,它已被secrets.yml文件替换:http://guides.rubyonrails.org/upgrading_ruby_on_rails.html#config-secrets-yml

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30398379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档