Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python - Facebook API - Need a working example

Ok, so i've googled around, i've found threads here on stackoverflow and i've checked the official Facebook wiki and.. and what not..

I now hope that one of you guys sits on a Facebook API sample code for Python. This is what i've got so far and all i get is "Invalid Signature" via PyFacebook which appears to be a dead project:

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" 

"all" i want, is to retrieve my friends list for now, if there's a better API point me in the right direction but Facebook has officially declared their own Python SDK dead and pyfacebook is almost working for me but not quite..

So, please help.

like image 653
Torxed Avatar asked Jul 16 '12 19:07

Torxed


People also ask

How does an API work with Facebook?

The Facebook API verifies your credentials & generates a unique authentication token & passes it to the third-party app, verifying the login process. Graph API is an HTTP based API via which apps can post on users walls, upload photos, share events & stuff.

How do I post to Facebook using Python?

Go to tools -> Graph Api explorer. Select your application. Select page access token and then select the page name on which you want to post message using python code. Select the 'i' icon at the start of access token.


1 Answers

The unofficial fork of the python sdk is still working fine for me.

To retrieve your friends, generate an access token here: https://developers.facebook.com/tools/access_token/

Limitations:

  • A user access token with user_friends permission is required to view the current person's friends.
  • This will only return any friends who have used (via Facebook Login) the app making the request.
  • If a friend of the person declines the user_friends permission, that friend will not show up in the friend list for this person.

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 
like image 90
dom Avatar answered Oct 02 '22 21:10

dom