gpt4 book ai didi

ruby-on-rails - Twitter API 通过 Rails 3 上的 OmniAuth,Net::HTTPUnauthorized hell

转载 作者:行者123 更新时间:2023-12-02 19:37:23 26 4
gpt4 key购买 nike

我遵循了 Simple OmniAuth 教程 ( http://asciicasts.com/episodes/241-simple-omniauth ),我可以使用我的 Twitter 帐户登录该服务。现在我想访问 twitter API 并从应用程序发送推文。我的代码如下:

class TwitterController < ApplicationController

def prepare_access_token(oauth_token, oauth_token_secret)
consumer = OAuth::Consumer.new("KEY", "SECRET",
{
:site => "http://api.twitter.com"
})
# now create the access token object from passed values
token_hash =
{
:oauth_token => oauth_token,
:oauth_token_secret => oauth_token_secret
}
access_token = OAuth::AccessToken.from_hash(consumer, token_hash)
return access_token
end

def tweet
# Exchange our oauth_token and oauth_token secret for the AccessToken instance.
@access_token = prepare_access_token(current_user.token, current_user.secret)

@response = @access_token.request(:post, "http://api.twitter.com/1/statuses/update.json", :status => "Tweet pela API")

render :html => @response.body
end

end

渲染线不执行任何操作。此外,如果我添加

<p><%= @response %></p>

在我看来,我明白

#<Net::HTTPUnauthorized:0x2ac5149e94f0>

不过,我仍然可以从 Twitter 帐户获取用户名。

我的用户模型如下:

class User < ActiveRecord::Base
def self.create_with_omniauth(auth)
create! do |user|
user.provider = auth["provider"]
user.uid = auth["uid"]
user.name = auth["user_info"]["name"]
user.token = auth['credentials']['token'],
user.secret = auth['credentials']['secret']
end
end
end

我做错了什么?

最佳答案

我已经解决了这个问题,但现在我觉得自己很傻。用户模型上有一个不应该存在的逗号。模型应该是

class User < ActiveRecord::Base
def self.create_with_omniauth(auth)
create! do |user|
user.provider = auth["provider"]
user.uid = auth["uid"]
user.name = auth["user_info"]["name"]
user.token = auth['credentials']['token']
user.secret = auth['credentials']['secret']
end
end
end

现在一切正常。

关于ruby-on-rails - Twitter API 通过 Rails 3 上的 OmniAuth,Net::HTTPUnauthorized hell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4595357/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com