2012-07-16 14 views
39

Ok, quindi Googled intorno, ho trovato le discussioni qui su StackOverflow e ho controllato il Facebook wiki ufficiale e .. e non quello ..Python - Facebook API - Hai bisogno di un esempio di lavoro

Ora spero che qualcuno di voi sieda su un codice di esempio dell'API di Facebook per Python. Questo è quello che ho finora e tutto quello che ottiene è "Firma non valida" via PyFacebook che sembra essere un progetto morto:

from facebook import Facebook 

api_key = '123456789______' 
secret = '<proper secret key>' 
OTK = 'XXXXX' # <-- You get this from: https://www.facebook.com/code_gen.php?v=1.0&api_key=123456789______ 
long_term_key = None 

fb = Facebook(api_key, secret) 

def generate_session_from_onetime_code(fb, code): 
    fb.auth_token = code 
    return fb.auth.getSession() 
if not long_term_key: 
    long_term_key = generate_session_from_onetime_code(fb, OTK)['session_key'] 
    print 'Replace None with this in the .py file for long_term_key:' 
    print long_term_key 

fb.session_key = long_term_key 
fb.uid = 000000001 # <-- Your user-id 
fb.signature = api_key # <-- This doesn't work at all, MD5 of what? 
#fb.validate_signature(fb) # <-- doesn't work either, prob need to pass MD5 handle? 
print fb.friends.get() # <-- Generates "Invalid Signature" 

"tutti" che voglio, è quello di recuperare il mio elenco di amici, per ora , se c'è un'API migliore mi indica la giusta direzione, ma Facebook ha ufficialmente dichiarato il proprio Python SDK morto e il pyfacebook è quasi funzionante per me ma non del tutto ..

Quindi, per favore aiutatemi.

+1

Ecco un tutorial che mostra passo per passo come utilizzare Python sociale Auth per accedere a Facebook, Google e Twitter: http://www.artandlogic.com/blog/2014/04/tutorial-adding-facebooktwittergoogle-authentication-to-a-django-application/ – orlenko

+1

Prova questo [fb 0.2.0.] (https://pypi.python.org/pypi/fb/ 0.2.0) Un sdk per python facebook leggero ma molto completo con spiegazione dettagliata di come –

risposta

65

Il unofficial fork of the python sdk sta ancora funzionando bene per me.

Per recuperare i tuoi amici, generare un token di accesso qui: https://developers.facebook.com/tools/access_token/

Limitazioni: token di accesso

  • un utente con autorizzazione user_friends è necessario per visualizzare amici della persona corrente.
  • In questo modo verranno restituiti solo gli amici che hanno utilizzato (tramite Facebook Login) l'app che ha effettuato la richiesta.
  • Se un amico della persona rifiuta l'autorizzazione user_friends, quell'amico non verrà visualizzato nell'elenco degli amici per questa persona.

Codice

import facebook 

token = 'your token' 

graph = facebook.GraphAPI(token) 
profile = graph.get_object("me") 
friends = graph.get_connections("me", "friends") 

friend_list = [friend['name'] for friend in friends['data']] 

print friend_list 
+1

Grazie! Funziona come un orologio svizzero! – Torxed

+0

Ho usato questo codice e gli amici di Facebook sono stati recuperati ma non tutti gli amici stanno arrivando. molto probabilmente gli amici senza foto profilo non vengono recuperati. Perché? –

+3

Si chiamano risultati paginati, qualcosa con cui hanno iniziato dopo che questa domanda è stata postata. Ogni risultato di ricerca è "paginato", il che significa che ottieni 1-100 risultati su 250, il recupero successivo è 101-200, il successivo è 201-250. – Torxed

Problemi correlati