2012-04-10 20 views
5

Sto cercando di ottenere token di accesso oauth per Facebook a livello di codice in ruby.come ottenere token di accesso oauth per Facebook utilizzando ruby ​​

Il mio codice è il seguente:

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"}) 

Quando provo a eseguire il codice Ruby al di sopra, sto ottenendo il seguente eccezione

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>' 

Qualsiasi aiuto è molto apprezzato come ho speso più di un giorno mentre cercavo di risolvere questo problema.

+0

tutte le idee sono molto apprezzate! –

+0

Dovresti aumentare il tasso di accettazione per le risposte. –

+0

Ma ecco qualcosa per iniziare: il tuo redirect_uri sembra essere di Facebook.com, ma quelli dovrebbero essere il TUO URL. –

risposta

2

Hai provato a mettere come redirect_uri invece di localhost:3000 il tuo vero indirizzo IP ex. 231.61.233.57:3000? Inoltre, è possibile provare a utilizzare il tunneling ssh a scopo di test in modo che l'applicazione localhost sia disponibile in tutto il mondo. Controlla questo http://progrium.com/localtunnel/. Quando si ottiene l'indirizzo IP da questo strumento, provare a impostare il parametro redirect_uri su di esso.

+0

Sono d'accordo che il 'redirect_uri' è probabilmente il problema. L'API che esegue il reindirizzamento può reindirizzare solo agli URI associati all'applicazione autorizzata. (Non so se Facebook lo fa, ma altre API OAuth con cui ho lavorato.) – pjmorse

Problemi correlati