过去三天我一直在尝试解决这个问题,但无济于事。我要做的就是允许使用 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
我究竟做错了什么?