「作成」で無効/期限切れのトークン エラーがスローされるのはなぜですか?
ユーザーは問題なくログインできます (したがって、適切に認証されます) が、投稿を作成しようとすると、このエラーが発生します。認証には Omniauth gem (v1.1.4) を、Twitter への投稿には Twitter gem (v4.6.2) を使用しています。それが重要な場合、Omniauth-twitter gem は v0.0.16 です。
これは私にエラーを引き起こしているコードです
class PostsController < ApplicationController
def create
Twitter::Client.new.update(@post.content)
end
end
これはユーザー モデル (user.rb) の一部です。
def twitter
unless @twitter_user
provider = self.authentications.find_by_provider('twitter')
@twitter_user = Twitter::Client.new(:oauth_token => provider.token, :oauth_token_secret => provider.secret) rescue nil
end
@twitter_user
end
これが私のomniauth初期化子です
Rails.application.config.middleware.use OmniAuth::Builder do
configure do |config|
config.path_prefix = '/auth'
end
provider :twitter, "xxxxxxxxxxxxxxxxxxxx", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
end
Twitter.configure do |config|
config.consumer_key = "xxxxxxxxxxxxxxxxxxxx"
config.consumer_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
config.oauth_token = :token
config.oauth_token_secret = :secret
end
私のスキーマ:
create_table "authentications", :force => true do |t|
t.integer "user_id"
t.string "provider"
t.string "uid"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.string "secret"
t.string "token"
end