過去 3 日間、この問題を解決しようとしてきましたが、役に立ちませんでした。私が探しているのは、Twitter を使用してログインしたユーザーが自分のアカウントにツイートできるようにすることだけです。
解決しようとしているエラーメッセージは次のとおりです。
Twitter::Error::Unauthorized in PostsController#create
Invalid or expired token
私はあらゆる種類のことを試しましたが、同じメッセージに完全に 360 円を返しました。
これが私が今いるところです:
class ApplicationController < ActionController::Base
def twitter
unless @twitter_user
provider = Authentication.find_by_provider('twitter')
@twitter_user = Twitter::Client.new(:token => provider.token, :secret => provider.secret) rescue nil
end
@twitter_user
end
ここでエラーがスローされます
class PostsController < ApplicationController
def create
twitter.update(@post.content)
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
create_table "users", :force => true do |t|
t.string "name"
t.string "email"
t.timestamp "created_at", :null => false
t.timestamp "updated_at", :null => false
t.string "password_digest"
t.string "remember_token"
これが私の初期化子です
Rails.application.config.middleware.use OmniAuth::Builder do
configure do |config|
config.path_prefix = '/auth'
end
provider :twitter, "XXXXXXXXXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
end
Twitter.configure do |config|
config.consumer_key = "XXXXXXXXXXXXXXXXXXXXXX"
config.consumer_secret = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
config.oauth_token = :token
config.oauth_token_secret = :secret
end
私は何を間違っていますか?