2013-04-12 72 views
0

我一直試圖解決過去三天的這個問題,但無濟於事。我所要做的就是允許使用Twitter登錄的用戶發送推文給他們的賬戶。爲什麼twitter oauth訪問令牌無效/過期(rails 3)

下面是我試圖解決該錯誤消息:

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 

我在做什麼錯?

+0

沒有你今天問同樣的問題? http://stackoverflow.com/questions/15964676/twittererrorunauthorized-in-postscontrollercreate-invalid-or-expired-toke – fmendez

+0

我嘗試了所有在該線程中發佈的方法加上更多,我真的很希望能儘快解決這個問題。這是昨天發佈的 – johbones

+0

您是否確認您使用的憑據實際上是有效的? – fmendez

回答

0

嘗試修改此:

Twitter::Client.new(:token => provider.token, :secret => provider.secret) 

這個

Twitter::Client.new(:oauth_token => provider.token, :oauth_token_secret => provider.secret) 
相關問題