0

I'm using the Twitter Gem and Figaro but my credentials aren't being stored. Here's my setup:

config/initializers/twitter.rb

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_SECRET"]
end

config/application.yml:

TWITTER_CONSUMER_KEY: "12345"
TWITTER_CONSUMER_SECRET: "12345"
TWITTER_ACCESS_TOKEN: "12345"
TWITTER_ACCESS_SECRET: "12345"

Placing the below in a View results in a "Unable to verify your credentials" error which I believe is caused by the initializer not correctly storing my credentials.

<%=
@client =  Twitter::REST::Client.new
@client.user_timeline("cnn") %>

I've tried putting various items in a Controller but nothings works. Via console:

client =  Twitter::REST::Client.new
=> #<Twitter::REST::Client:0x007fadf06364b0>
client.consumer_key
 => nil

Any help would be much appreciated, thanks

zero323
  • 322,348
  • 103
  • 959
  • 935
Ace
  • 566
  • 6
  • 19

1 Answers1

1

client = Twitter::REST::Client.new is creating a new object with no params; it is not reusing what has been configured in config/initializers/twitter.rb

Try putting the initialization code & the accessing code in the controller together as follows:

@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_SECRET"]
end

@client.user_timeline("cnn")
Prakash Murthy
  • 12,923
  • 3
  • 46
  • 74