为什么Twitter OAuth访问令牌无效/已过期(第3条) [英] Why is the twitter oauth access token invalid / expired (rails 3)

查看:142
本文介绍了为什么Twitter OAuth访问令牌无效/已过期(第3条)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

过去三天,我一直在尝试解决此问题,但无济于事.我要做的就是允许使用Twitter登录的用户发布其推文.

I've been trying to solve this problem for the past three days but to no avail. All I'm looking to do is allow users who logged in using Twitter to tweet to their accounts.

这是我要解决的错误消息:

Here's the error message that I'm trying to resolve:

Twitter::Error::Unauthorized in PostsController#create
Invalid or expired token

我尝试了各种不同的方法,但对同一条消息回了整整360圈.

I've tried all sorts of different things but I came back a full 360 circle to the same message.

我现在在这里:

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

我在做什么错了?

推荐答案

尝试更改此内容:

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

进入此

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

这篇关于为什么Twitter OAuth访问令牌无效/已过期(第3条)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆