在api请求中处理ENV变量

时间:2014-04-29 08:20:51

标签: ruby-on-rails api facebook-graph-api uri

我正在向facebook图表api发出请求,并已将我的USER_ID和ACCESS_TOKEN保存在ENV变量中,我想知道这是否是最佳实践,因为今天早上我遇到了一个我昨天没有得到的URI错误

class FacebookFeed
  #Constants
  VANDALS_ID = ENV['VANDALS_FB_ID']
  FB_ACCESS_TOKEN = ENV['FACEBOOK_ACCESS_TOKEN']
  FACEBOOK_URL = 'https://graph.facebook.com/"#{VANDALS_ID}"/posts/?access_token="#{FB_ACCESS_TOKEN}"'

def get_feed
  uri = URI(FACEBOOK_URL)
  response = HTTParty.get(uri)
  results = JSON.parse(response.body)['data']
  puts results
end
end

所以在rails控制台中,我只是想得到一个回复​​,但我正在

URI::InvalidURIError: bad URI(is not URI?): https://graph.facebook.com/"#{VANDALS_ID}"/posts/?access_token="#{FB_ACCESS_TOKEN}"

这很奇怪,因为这在昨天工作,但有什么我缺少或有更好的方法来存储我的User_ID和访问令牌

任何帮助表示赞赏

更新

做“uri'这是返回

https://graph.facebook.com/%22%23%7BVANDALS_ID%7D%22/posts/?access_token=%22%23%7BFB_ACCESS_TOKEN%7D%22

我假设是作为GET请求发送的内容,因为当我然后做出“放置响应”时#t;我得到

{"error":{"message":"Invalid OAuth access token.","type":"OAuthException","code":190}}

如何正确构建请求?因为我正在做的事似乎没有工作

由于

1 个答案:

答案 0 :(得分:2)

在与Skype谈论Rich之后,Sergey Kishenin的评论解决了问题:

FACEBOOK_URL = "https://graph.facebook.com/#{VANDALS_ID}/posts/?access_token=#{FB_ACCESS_TOKEN}