2012-10-18 19 views
42

Próbowałem dostać aplikację-access-żeton do mojego facebook app z tym kodem:próbuje aplikację token dostępu

APP_ACCESS_TOKEN = FB.api(
    "oauth/access_token", 
    {client_id: APP_ID, client_secret: APP_SECRET_CODE, redirect_uri: uri}, 
    function(response){ 
    console.log(response); 
}); 

które powinno być tak:

GET https://graph.facebook.com/oauth/access_token? 
     client_id=YOUR_APP_ID 
     &client_secret=YOUR_APP_SECRET 
     &redirect_uri=uri 

ale pojawia się błąd:

code: 1 
message: "Missing authorization code" 
type: "OAuthException" 

Jaki jest kod autoryzacji i jak mogę go uzyskać?

+0

Czy znalazłeś działające rozwiązanie? –

+0

Niestety, nie pamiętam. Zbyt dawno temu. To było podczas laboratorium. –

Odpowiedz

46

https://developers.facebook.com/docs/howtos/login/login-as-app/:

“Because it requires you to include your App Secret you should not attempt to make this call client-side as that would expose this secret to all your app users. It is important that your App Secret is never shared with anyone. For this reason, this call should be performed server-side”

A dla tokenu dostępu aplikacja, to jest ten sam - nigdy nie należy użycie to po stronie klienta, ponieważ każdy użytkownik mógł go dostrzec tam i wtedy zacząć go używać do wykonywania czynności w imieniu aplikacji (lub zmienić wiele ustawień aplikacji).

Jeśli masz część aplikacji po stronie serwera, możesz po prostu "zbudować" token dostępu do aplikacji samodzielnie, łącząc identyfikator aplikacji i sekret z symbolem potoku, app_id|app_secret.

+2

Dziękujemy! Bardzo pomaga! –

+3

Bardzo dziękuję za informację, jak tworzony jest token dostępu! – Ron

+0

Czy ludzie nadal widzą stronę klienta, nawet jeśli ukryjesz pliki .js? –

65

Uzyskanie App token dostępu

Aby uzyskać aplikację token dostępu, należy wywołać następujące HTTP GET request:

GET https://graph.facebook.com/oauth/access_token? 
      client_id=YOUR_APP_ID 
      &client_secret=YOUR_APP_SECRET 
      &grant_type=client_credentials 

API odpowie zapytaniu-strunowej sformatowany ciąg postaci :

access_token=YOUR_APP_ID|YOUR_APP_ACCESS_TOKEN 

referencyjny: http://developers.facebook.com/docs/opengraph/howtos/publishing-with-app-token/

+1

Wielkie dzięki! +1 –

+4

Zaktualizowany link: https://developers.facebook.com/docs/facebook-login/access-tokens#apptokens –

+0

Dziękuję, szukałem tego +! – Simon

1

sprawdź, czy użytkownicy pliku node.js lub JAVASCRIPT. getLongLiveToken: funkcyjne (dane) {

 FB.api('oauth/access_token', { 
      client_id: data.client_id, // FB_APP_ID 
      client_secret: data.secret, // FB_APP_SECRET 
      grant_type: 'fb_exchange_token', 
      fb_exchange_token: data.access_token // USER_TOKEN 
     }, function (res) { 
      if(!res || res.error) { 
       console.log(!res ? 'error occurred' : res.error); 
      }else{ 
       var accessToken = res.access_token; 
       if(typeof accessToken != 'undefined'){ 
       } 
      } 
     }); 
    } 
0

nie jestem pewien, że wystawiając klienta tajemnicę APP w kodzie jest dobrym pomysłem, można wziąć token aplikacji z Facebooka narzędzia „Access Reklamowe funkcji” wystarczy skopiować token do kodu dla każdego zastosowania https://developers.facebook.com/tools-and-support/

0

można również wykorzystać ten punkt końcowy POST bez generowania token, po prostu mieć pewność jej miano z serwera nie po stronie klienta, gdzie app_secret jest wystawiony na publiczny:

https://graph.facebook.com/?id={url}&scrape=true&access_token={app_id}|{app_secret} 
Powiązane problemy