class TwitterController < ApplicationControllerdef 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_tokenenddef 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.bodyendend
渲染线不做任何事情.此外,如果我添加
<p><%= @response %></p>
在我看来,我明白了
#<净:: httpUnauthorized:0x2ac5149e94f0>
不过,我可以从Twitter帐户获取用户名.
我的用户模型如下:
class User < ActiveRecord::Basedef 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 – 通过OmniAuth on Rails 3,Net :: HTTPUnauthorized地狱的Twitter API全部内容,希望文章能够帮你解决ruby-on-rails – 通过OmniAuth on Rails 3,Net :: HTTPUnauthorized地狱的Twitter API所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)