Token dostępu do Facebooka dla stron


115

Mam stronę na Facebooku, z której chcę coś wyciągnąć. Pierwsza rzecz to kanały iz tego co przeczytałem są publiczne (nie ma potrzeby access_token). Ale chcę również uzyskać zdarzenia ... a nie są one publiczne i potrzebują access_token.

Nie chcę, aby użytkownik logował się na Facebooku ani nic w tym stylu. Chcę tylko przesłać wszystkie dane, które mogę z tej jedynej strony. Dlatego odrzuciłem już wiele przykładów, które znalazłem tutaj i ten pod adresem https://developers.facebook.com/blog/post/500/ , ponieważ chcą, aby użytkownik się zalogował lub wymagają działania użytkownika, nie jestem zainteresowany.

Chcę, aby moja aplikacja na Facebooku miała pełną autoryzację i access_token do przesyłania danych z tej jednej strony na Facebooku, której jestem właścicielem (admin). czy to możliwe? Próbowałem już wielu rzeczy, ale wydaje się, że nic nie działa.

Próbowałem kliknąć tutaj: https://www.facebook.com/dialog/oauth?client_id=150635421702954&redirect_uri=http://MY_URL/&scope=manage_pages&response_type=token&fields=access_token - zmiana MY_URL na moją witrynę i żąda autoryzacji do edycji każdego posiadam stronę. Nawet nie będąc tym, czego chcę, kliknąłem, ale w zamian nie otrzymałem access_token ...


Aby uzyskać zdarzenia, robię to teraz (access_token często traci ważność): 1 - Pobierz token z Graph Explorer 2 - Wklej go w moim kodzie poniżej: var authToken = 'THE_CODE_I_GOT'; var feedQuery = 'graph.facebook.com/MY_PAGE_ID/feed'; var feedURL = feedQuery +'?access_token='+ authToken +'&callback=?'; $.getJSON(feedURL,function(data){ var d = data.data; for (i = 0; i <d.length; i ++) {d [i] .message? $ ("# lista"). append ('<li>' + d [i] .message + '</li>'): ''; // wiele innych rzeczy, rozumiesz}}); `
bsides,

1
Możesz zdobyć stały token: stackoverflow.com/questions/17197970/…
Josh

Odpowiedzi:


269
  1. Przejdź do Graph API Explorer
  2. Wybierz swoją aplikację z menu rozwijanego
  3. Kliknij „Uzyskaj token dostępu”
  4. Wybierz manage_pagespozwolenie (możesz też potrzebować user_eventspozwolenia, nie jestem pewien)
  5. Teraz uzyskaj dostęp do me/accountspołączenia i skopiuj swoją stronęaccess_token
  6. Kliknij identyfikator swojej strony
  7. Dodaj stronę access_tokendo pól GET
  8. Zadzwoń na wybrane połączenie (np . PAGE_ID/events:)

1
W ten sposób mogę wywoływać połączenia na wszystkich moich stronach, używając tokenu strony tylko jednej z nich. Czy to nie jest złe? Czy istnieje sposób na uzyskanie tokena tylko dla jednej określonej strony, która nie działa na innych stronach?
andresp

112
Wspinam się po górach i pływam po oceanach, po prostu szukam odpowiedzi. Dziękuję Ci.
IMB

15
Ten proces już nie działa, ponieważ wygenerowany token dostępu wygasa po wylogowaniu z dowolnego powodu.
coneybeare

1
@coneybeare, zapoznaj się z tym dokumentem, aby dowiedzieć się, jak przedłużyć token dostępu
ifaour

1
Ciągle otrzymuję pusty wynik. Czy to ma znaczenie, jeśli jest to strona aplikacji?
Max


5

Dokumentacja na ten temat jest dobra, jeśli nie trochę trudna do znalezienia.

Facebook Graph API - Tokeny stron

Po zainicjowaniu fbgraph węzła możesz uruchomić:

var facebookAccountID = yourAccountIdHere 

graph
.setOptions(options)
.get(facebookAccountId + "/accounts", function(err, res) {
  console.log(res); 
});

i otrzymaj odpowiedź JSON z tokenem, który chcesz pobrać, znajdującym się pod adresem:

res.data[0].access_token
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.