因此,我在尝试运行此代码时遇到未初始化的常量错误:
require 'twitter'
require 'json'
client = Twitter::REST::Client.new do |config|
config.consumer_key = ENV['TWITTER_CONSUMER_KEY']
config.consumer_secret = ENV['TWITTER_CONSUMER_SECRET']
config.access_token = ENV['TWITTER_ACCESS_TOKEN']
config.access_token_secret = ENV['TWITTER_ACCESS_TOKEN_SECRET']
end
我环顾四周找到了this issue,但它似乎并不适用,因为我的文件名是twitterFeed.rb。然后我认为可能是与宝石的一些不匹配的版本。所以我跑了清理,但后来它告诉我我错过了宝石,并重新安装了旧版本的twitter宝石。 所以我有twitter(5.16.0,4.8.1)正在运行。不确定从何处开始确定Twitter :: REST未初始化的原因。
非常感谢任何见解。
编辑: 经过一些重新评估后,我可能会有不匹配的依赖。
我在控制台上看到了这个: /Users/elizabethbartscherer/.rvm/gems/ruby-2.2.1/gems/twitter-4.8.1/lib/twitter/cursor.rb:51:警告:循环参数参考 - 集合 法拉第:: Builder现在是Faraday :: RackBuilder。
答案 0 :(得分:0)
推荐的方法是在项目目录中设置Gemfile
,使用Bundler,如下所示:
source 'https://rubygems.org'
gem 'twitter'
gem 'json'
然后运行bundle install
。
在您的twitterFeed.rb
文件中,将其添加到文件顶部,如下所示:
require 'rubygems'
require 'bundler/setup'
require 'twitter'
require 'json'
client = Twitter::REST::Client.new do |config|
config.consumer_key = ENV['TWITTER_CONSUMER_KEY']
config.consumer_secret = ENV['TWITTER_CONSUMER_SECRET']
config.access_token = ENV['TWITTER_ACCESS_TOKEN']
config.access_token_secret = ENV['TWITTER_ACCESS_TOKEN_SECRET']
end
然后再次尝试运行您的脚本:ruby twitterFeed.rb
答案 1 :(得分:0)
我解决了这个问题。我没有意识到,当使用bundler时,它会创建gem.lock文件并且我管理了我的依赖项。删除文件并重新安装修复了问题。