2012-04-10 16 views
5

Am. aşağıdaki gibiyakut içinde programlı Facebook'a için oauth erişim belirteci almaya çalışırken

Benim kodudur:

client = OAuth2::Client.new(
    APP_ID, 
    SECRET_ID, 
    :authorize_url => "/dialog/oauth", 
    :token_url => "/oauth/access_token", 
    :site => "https://www.facebook.com/" 
) 

code = client.auth_code.authorize_url(:redirect_uri => "http://www.facebook.com/") 
token = client.auth_code.get_token(code, :redirect_uri => "https://graph.facebook.com/") 
OAuth2::AccessToken.new(client, token.token, {:mode => :query, :param_name =>"oauth_token"}) 

i yukarıdaki yakut kodu çalıştırmayı denediğinizde, ben ben geçirdim gibi herhangi bir Yardım büyük takdir

https://www.facebook.com/dialog/oauth?response_type=code&client_id=APP_ID 
51&redirect_uri=http%3A%2F%2Fwww.facebook.com%2F 

/home/ec2-user/.rvm/gems/[email protected]/gems/oauth2-0.5.2/lib/oauth2/clie 
nt.rb:129:in `get_token': OAuth2::Error (OAuth2::Error) 
     from /home/ec2-user/.rvm/gems/[email protected]/gems/oauth2-0.5.2/li 
b/oauth2/strategy/auth_code.rb:29:in `get_token' 
     from oauth.rb:16:in `<main>' 

aşağıdaki özel durum alıyorum bunu bir gün daha denemeye çalışıyorum.

+0

herhangi bir fikir büyük takdir! –

+0

Cevaplar için kabul oranınızı yükseltmelisiniz. Burada –

+0

Ama başlangıç ​​için bir şey: senin redirect_uri en Facebook.com en görünmektedir, ancak bu SİZİN url olmalıdır. –

cevap

2

localhost:3000 yerine gerçek IP adresi ex. 231.61.233.57:3000 yerine redirect_uri koymaya çalıştınız mı? Ek olarak ssh tünellemeyi test amacıyla kullanmaya çalışabilirsiniz, böylece localhost uygulamanız dünya çapında kullanılabilir olacaktır. Bunu kontrol edin http://progrium.com/localtunnel/. Bu araçtan ip adresi alacağınız zaman redirect_uri param değerini ayarlamaya çalışın.

+0

"redirect_uri" nin muhtemelen sorun olduğunu kabul ediyorum. Yönlendirmeyi gerçekleştiren API, yalnızca yetkili uygulama ile ilişkili URI'lere yönlendirebilir. (Facebook'un bunu yapıp yapmadığını bilmiyorum, ancak birlikte çalıştığım diğer OAuth API'larını bilmiyorum.) – pjmorse

İlgili konular