Щебетать в Rails gem "Невозможно подтвердить ваши учетные данные", инициализатор не работает

Я использую Twitter Gem и Figaro, но мои учетные данные не сохраняются. Вот мои настройки:

конфиг / Инициализаторы / 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

конфиг / application.yml:

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

Размещение ниже в представлении приводит к ошибке "Невозможно проверить ваши учетные данные", которая, по моему мнению, вызвана тем, что инициализатор неправильно хранит мои учетные данные.

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

Я пытался поместить различные элементы в контроллер, но ничего не работает. Через консоль:

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

Любая помощь будет высоко ценится, спасибо

1 ответ

Решение

client = Twitter::REST::Client.new создает новый объект без параметров; это не повторное использование того, что было настроено в 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

@client.user_timeline("cnn")
Другие вопросы по тегам