2016-03-27 4 views
1

Ich habe versucht, meine RoR App für einen Tag ohne Glück mit der Facebook API zu verbinden. Ich benutze Ruby on Rails und Koala.Erhalte ein Facebook App Access Token mit Koala und Ruby on Rails

Wenn ich versuche, eine Verbindung wie folgt:

graph = Koala::Facebook::API.new(User_Token) 

Dann gibt es kein Problem. (Wo Benutzer-Token von https://developers.facebook.com/tools/access_token/ erhalten wurde)

Das Problem besteht darin, dass das Benutzer-Token abläuft. Ich bin mir bewusst, dass es eine Möglichkeit gibt, den App-Token zu erweitern, aber ich möchte lieber nicht darauf zurückgreifen.

Stattdessen versuche ich meine App zu authentifizieren, um eine APP ACCESS TOKEN zu erhalten, die ich anstelle des Benutzer Token verwenden kann (wie https://developers.facebook.com/docs/facebook-login/access-tokens#apptokens. Bitte beachten Sie dies bezieht sich auf die App Access Token, nicht die App Token war in der ersten Verbindung bezeichnet).

Um die App Zugriffstoken zu erhalten, habe ich ein Tutorial gefolgt und lieferte diesen Code in meinem Controller:

id = <my app id> 
secret = <my app secret> 
callbackUrl = "http://localhost:3000/events/appcallback" 
@ouath = Koala::Facebook::OAuth.new(id, secret, callbackUrl) 
redirect_to @oauth.url_for_oauth_code() 

in meinem routes.rb ich habe:

match "events/appcallback" => "events#appCalledBack", via: :get 

Dies ist rein um zu testen, dass der Callback funktioniert hat.

Meine Absicht war es dann so etwas zu tun:

App_Access_Token = @oauth.get_access_token(params[:code]) 

Aber stattdessen bekomme ich einen Fehler: NoMethodError in EventsController # Index nicht definierte Methode `url_for_oauth_code‘ für nil: NilClass

Bitte beachten Sie, dass Ich bin nicht daran interessiert, ein Zugriffs-Token für einen Benutzer zu erhalten. Ich möchte für meine app, so dass ich auf die api a la verbinden:

graph = Koala::Facebook::API.new(App_Access_Token) 

wäre Jede Hilfe sehr, sehr geschätzt.

Antwort

0

So scheint es, dass Ihre Route falsch ist, da es EventsController#index geht. Können Sie einige Protokolle und die entsprechenden Routen posten?