2012-07-16 26 views
39

Ok, así que he buscado en Google en todo, he encontrado aquí en stackoverflow hilos y he comprobado el Facebook wiki oficial y .. y lo que no ..Python - Facebook API - ¿Necesita un ejemplo de trabajo

Ahora espero que uno de ustedes se siente en un código de muestra API de Facebook para Python. Esto es lo que tengo hasta ahora y lo único que consigue es "Firma no válida" a través de PyFacebook que parece ser un proyecto muerto:

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" 

"todo" lo que quiero, es para recuperar mi lista de amigos por ahora , si hay una mejor API, apúntame en la dirección correcta, pero Facebook ha declarado oficialmente su propio SDK de Python muerto y pyfacebook casi funciona para mí, pero no del todo ...

Así que ayuda.

+1

Aquí hay un tutorial que muestra paso a paso cómo utilizar Python autenticación Social para iniciar sesión en Facebook, Google y Twitter: http://www.artandlogic.com/blog/2014/04/tutorial-adding-facebooktwittergoogle-authentication-to-a-django-application/ – orlenko

+1

Pruebe esto [fb 0.2.0.] (https://pypi.python.org/pypi/fb/ 0.2.0) Un sdk facebook python ligero pero muy completo con explicaciones detalladas de cómo –

Respuesta

65

El unofficial fork of the python sdk sigue funcionando bien para mí.

Para recuperar tus amigos, generar un token de acceso aquí: https://developers.facebook.com/tools/access_token/

Limitaciones: Se requiere un token de acceso

  • Un usuario con permiso para ver user_friends amigos de la persona actual.
  • Esto solo devolverá a los amigos que hayan utilizado (a través de Facebook Login) la aplicación que realiza la solicitud.
  • Si un amigo de la persona rechaza el permiso user_friends, ese amigo no aparecerá en la lista de amigos de esta persona.

Código

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

¡Gracias! Esto funciona como un reloj suizo! – Torxed

+0

Utilicé este código y se buscan amigos de Facebook, pero no todos los amigos vienen. lo más probable es que no se capten amigos sin una foto de perfil. ¿Por qué? –

+3

Se llama resultados paginados, algo con lo que comenzaron después de que se publicó esta pregunta. Cada resultado de búsqueda está "paginado", lo que significa que obtienes de 1 a 100 resultados de cada 250, la próxima búsqueda es de 101 a 200, y luego es de 201 a 250. – Torxed

Cuestiones relacionadas