Twitter Rails gem "Unable to verify your credentials", Initializer not working

693 Views Asked by At

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

1

There are 1 best solutions below

0
On BEST ANSWER

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")