Requests-Facebook is a Python library to help interface with Facebook Graph API using the awesome requests library by @kennethreitz
Features
Authenticating Users
- Dyanmic Facebook methods
Read home feeds/user feeds
Post status updates
Delete items
Like items
And many more!!
Photo Uploading
Installation
Installing Requests-Facebook is simple:
$ pip install requests-facebook
Usage
Handling the Callback
# Assume you are using the FacebookAPI object from the Authorization URL code
# You'll need to obtain `code` from the url query string
# In Django, you'd do something like
# code = request.GET.get('code')
access_token = f.get_access_token(code)
final_access_token = access_token['access_token']
# Save that token to the database for a later use?
Dynamic Facebook methods
Say you have the url https://graph.facebook.com/me/friends To make a call via this library, you’d do GraphAPI.get(‘me/friends’)
You just take everything in the url AFTER https://graph.facebook.com/
Getting some User information
# Get the final tokens from the database or wherever you have them stored
graph = GraphAPI(access_token)
# Print out your information
try:
print graph.get('me')
except FacebookClientError:
print 'Failed! :('
# Print out my information
print graph.get('mikehimself')
Getting your Home Feed
# Assume you are using the GraphAPI instance from the previous section
home_feed = graph.get('me/home')
print home_feed
Getting a Profile Feed
# Assume you are using the GraphAPI instance from the previous section
your_feed = graph.get('me/feed')
print your_feed
# Getting my profile feed
my_feed = graph.get('mikehimself/feed')
print my_feed
Creating a Photo Album
# Assume you are using the GraphAPI instance from the previous section
new_album = graph.post('me/albums', params={'name':'Test Album'})
print new_album
Posting a Photo
# Assume you are using the GraphAPI instance from the previous section
# Assume you are using the album you just created in the previous section
# new_album = new_album var from the previous section
album_id = new_album['id']
photo = open('path/to/file/image.jpg', 'rb')
# The file key that Facebook expects is 'source', so 'source' will be apart
# of the params dict.
# You can pass any object that has a read() function (like a StringIO object)
# In case you wanted to resize it first or something!
new_photo = graph.post('%s/photos' % album_id, params={'message':'My photo caption!', 'source': photo})
print new_photo
Posting an Edited Photo (This example resizes a photo)
# Assume you are using the GraphAPI instance from the previous section
# Assume you are using the album you just created in the previous sections
# Like I said in the previous section, you can pass any object that has a
# read() method
# Assume you are working with a JPEG
from PIL import Image
from StringIO import StringIO
photo = Image.open('/path/to/file/image.jpg')
basewidth = 320
wpercent = (basewidth / float(photo.size[0]))
height = int((float(photo.size[1]) * float(wpercent)))
photo = photo.resize((basewidth, height), Image.ANTIALIAS)
image_io = StringIO.StringIO()
photo.save(image_io, format='JPEG')
image_io.seek(0)
try:
new_photo = graph.post('%s/photos' % album_id, params={'message':'My photo caption!', 'source': photo})
except FacebookClientError, e:
# Maybe the file was invalid?
print e.message
Catching errors (In case you didn’t catch it in the first example)
# Assume you are using the GraphAPI instance from the previous section
try:
graph.delete('me/feed')
except FacebookClientError, e:
print e.message
print 'Something bad happened :('
TODO
Support for Facebook REST API
Metadata
Release files for requests-facebook 0.4.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| requests-facebook-0.4.2.tar.gz | 5.8 kB | Details |
Release files / requests-facebook-0.4.2.tar.gz
| Download URL | requests-facebook-0.4.2.tar.gz |
|---|---|
| Size | 5.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4af174b06afd9cb87758450f02df495975324f851114250e63309f7b24fc1cc9
|
|
BLAKE2b-256 checksum How to use checksums |
b1b21cb4eb6db7da5f6a1e8eccee59a45a061057dffa30167d03e980f696ec4f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |