2013-05-19 13 views
5

Jestem trochę zmieszany, aby przekazać mój token dostępu do FB.api() podczas wysyłania żądań dotyczących chronionych rzeczy.Czy powinienem przekazać token dostępu podczas korzystania z FB.api()?

Chcę, aby moja aplikacja była zalogowana i uwierzytelniona, ale w jaki sposób mogę użyć FB.api() z posiadanym tokenem dostępu?

app.accessToken = response.authResponse.accessToken; // This is a valid access token. 

FB.api('/me/friends?access_token='+app.accessToken, {fields: 'name,id,location,picture,installed'}, function(response) { 
    console.log(response); 
}); 

Czy to jest właściwy sposób przekazywania tokenu dostępu do FB.api()?

W tym przypadku moja odpowiedź powraca z nazwą, identyfikatorem, lokalizacją, zdjęciem znajomych, ale wygląda na to, że dane "zainstalowane" nie są chronione.

Czy robię to dobrze?

Odpowiedz

4

Nie trzeba przekazywać tokena, jeśli użytkownik się zalogował (np. Przy pomocy FB.login). W rzeczywistości za pomocą zestawu SDK JavaScript (lub pakietu SDK PHP) prawie nigdy nie trzeba zajmować się tokenami dostępu (użytkownika).

Tak, połączenie będzie tylko tak:

FB.api('/me/friends', function(response) { 
    console.log(response); 
}); 

Uzyskiwanie informacji, jeśli użytkownik zainstalował aplikację:

+0

Oh OK. Rozpocząłem cały proces za pomocą FB.init(), a następnie wykonałem FB.getLoginStatus(), który wywołuje powyższą funkcję FB.api(). Dlaczego więc "zainstalowane" dane nie wracają? Być może to nie jest dostępne w punkcie końcowym/mnie/znajomych? –

+1

cóż, jeśli chodzi o pobieranie zainstalowanych danych, dodam kilka linków do mojej odpowiedzi. – luschn

+1

Byłoby miło zobaczyć przykład, jak zrobić to, co zadał OP. Mam scenariusz, w którym muszę przekazać token dostępu i nie mogę znaleźć żadnych przykładów. –

4

Chociaż widzę, dlaczego niektórzy użytkownicy mówią, że nie mogą wymagać, aby przekazać token dostępu z powodu konkretnego zastosowania.

Ogólnie, istnieją przypadki, gdy trzeba zrobić, aby przekazać token dostępu poprzez FB.api()

Droga ta jest wykonywana jest przez przepuszczenie go w obiekcie parametrów, takich jak:

FB.api('/{fb-graph-node-goes-here}/, { 
    access_token: "TOKEN GOES HERE" 
    //other parameters can go here aswell 

}, function(response) { 
    console.log(response); 
}); 
1

Tak to zrobiłem:

Przepuszczenie access_token jako parametru.

FB.api("/me", { access_token : response.authResponse.accessToken }, {fields: ['last_name', 'first_name', 'name']}, 
     function (response) { 
      console.log(response); 
      console.log('Name: ' + response.name); 
     } 
    ); 
Powiązane problemy