1

OK、これを何度もデバッグして試した後、髪を引っ張っています。だからここで私を助けてください。401 Unauthorized errorリダイレクトされた後も取得し続けます。

これが私のコードです。ここで何が間違っていますか?

require 'rubygems'
require 'OAuth'
require 'json'

class SessionController < ApplicationController

   before_filter :load_oauth

   def index

     if session[:request_token] && params[:oauth_token]
         @request_token = OAuth::RequestToken.new(@consumer,
session[:request_token], session[:request_secret])
         @access_token =
@request_token.get_access_token(:oauth_verifier =>
params[:oauth_verifier])
         puts @access_token
         @info = @access_token.get("http://api.foursquare.com/v1/
test")

         flash[:notice] = "Foursquare! Yay!"

     else
         redirect_to(@foursqrurl)
     end

   end

   private
   def load_oauth
     @oauth_key = 'key'
     @oauth_secret = 'secret'
     @consumer = OAuth::Consumer.new(@oauth_key,@oauth_secret,{
      :site               => "http://foursquare.com",
      :scheme             => :header,
      :http_method        => :post,
      :request_token_path => "/oauth/request_token",
      :access_token_path  => "/oauth/access_token",
      :authorize_path     => "/oauth/authorize"
     })

     @request_token = @consumer.get_request_token(:oauth_callback =>
"http://localhost:3001/session")
     session[:request_token] = @request_token.token
     session[:request_secret] = @request_token.secret
     puts @request_token.token
     puts @request_token.secret
     # redirecting user to foursquare to authorize
     @foursqrurl = @request_token.authorize_url
     puts @foursqrurl

   end

end
4

2 に答える 2

1

私は Oauth についてまったく何も知らないので、これは完全に間違っている可能性あります。localhost の定義が独自の 127.0.0.1 になるため、自分自身にコールバックします。

ここで正しく推測できた場合は、:oauth_callback をパブリック IP アドレス/名前に変更してください。

于 2010-07-04T13:07:55.183 に答える