web-dev-qa-db-fra.com

Python - API Facebook - Besoin d'un exemple de travail

Ok, donc j'ai fait des recherches sur Google, j'ai trouvé des discussions ici sur stackoverflow et j'ai vérifié le wiki officiel de Facebook et .. et quoi pas ..

J'espère maintenant que l'un d'entre vous est assis sur un exemple de code API Facebook pour Python. C'est ce que j'ai jusqu'à présent et tout ce que j'obtiens est "Signature invalide" via PyFacebook qui semble être un projet mort:

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"

"Tout ce que je veux, c'est de récupérer ma liste d'amis pour l'instant, s'il y a une meilleure API me pointant dans la bonne direction mais Facebook a officiellement déclaré le sien Python SDK mort et pyfacebook fonctionne presque) pour moi mais pas tout à fait ..

Alors, aidez-moi.

39
Torxed

Le fork non officiel du python sdk fonctionne toujours bien pour moi.

Pour récupérer vos amis, générez un jeton d'accès ici: https://developers.facebook.com/tools/access_token/

Limites:

  • Un jeton d'accès utilisateur avec l'autorisation user_friends est requis pour afficher les amis de la personne actuelle.
  • Cela ne retournera que les amis qui ont utilisé (via Facebook Login) l'application faisant la demande.
  • Si un ami de la personne refuse l'autorisation user_friends, cet ami n'apparaîtra pas dans la liste d'amis de cette personne.

Code

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
69
dom