API wrapper for Facebook written in Python
Project description
facebookmarketing-python
facebookmarketing is an API wrapper for Facebook and Instagram written in Python.
Installing
pip install facebookmarketing-python
Facebook Usage
Client instantiation
from facebookmarketing.client import Client
client = Client('APP_ID', 'APP_SECRET', 'v4.0')
OAuth 2.0
For more information: https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/
Get authorization url
url = client.authorization_url('REDIRECT_URL', 'STATE', ['pages_manage_ads', 'pages_manage_metadata', 'pages_read_engagement', 'leads_retrieval'])
Exchange the code for an access token
response = client.exchange_code('REDIRECT_URL', 'CODE')
access_token = response['access_token']
Extend a short-lived access token for a long-lived access token
response = client.extend_token(access_token) # From previous step
access_token = response['access_token']
Get app token
response = client.get_app_token()
app_access_token = response['access_token']
Inspect a token
response = client.inspect_token(access_token, app_access_token) # From previous step
Set the access token in the library
client.set_access_token(access_token) # From previous step
User
For more information: https://developers.facebook.com/docs/graph-api/reference/user/
Get account information
response = client.get_account()
Get account pages
response = client.get_pages()
Get page token
page_access_token = client.get_page_token('PAGE_ID') # From previous step
Page
For more information: https://developers.facebook.com/docs/graph-api/reference/page/
Get lead generation forms given the page
response = client.get_ad_account_leadgen_forms('PAGE_ID', page_access_token) # From previous step
Get leads info given the lead generation form
response = client.get_ad_leads('LEADGEN_FORM_ID')
Get a sigle lead info
response = client.get_leadgen('LEADGEN_ID')
Webhooks
For more information: https://developers.facebook.com/docs/graph-api/webhooks
The following methods cover Step 2 and 4 of the Webhook lead retrieval guide: Webhooks: https://developers.facebook.com/docs/marketing-api/guides/lead-ads/retrieving/
Create a webhook for leads retrieval
response = client.create_app_subscriptions('page', 'callback_url', 'leadgen', 'abc123', app_access_token) # You get app_access_token from get_app_token() method
response = client.create_page_subscribed_apps('PAGE_ID', page_access_token, params={'subscribed_fields': 'leadgen'}) # You get page_access_token from get_page_token() method
Instagram Usage
Client instantiation
from facebookmarketing.client import Client
client = Client('APP_ID', 'APP_SECRET', 'v12.0')
OAuth 2.0
For more information: https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/
Get authorization url
url = client.authorization_url('REDIRECT_URL', 'STATE', ['instagram_basic', 'pages_show_list'])
Exchange the code for an access token
response = client.exchange_code('REDIRECT_URL', 'CODE')
access_token = response['access_token']
Page
Get page id
response = client.get_instagram(page_id, ['instagram_business_account'])
page_id = response['instagram_business_account']['id']
Media
Get media
response = client.get_instagram_media(page_id)
Get media object
response = client.get_instagram_media_object(media_id, fields=['id','media_type','media_url','owner','timestamp'])
Hashtag
Search hashtag
response = (client.get_instagram_hashtag_search(page_id, 'coke'))
Get hashtag object
response = client.get_instagram_hashtag_object(hashtag_id, fields=['id', 'name'])
Get hashtag top media
response = client.get_instagram_hashtag_top_media(hashtag_id, instagram_id, ['id','media_type','comments_count','like_count', 'caption'])
Requirements
- requests
Contributing
We are always grateful for any kind of contribution including but not limited to bug reports, code enhancements, bug fixes, and even functionality suggestions.
You can report any bug you find or suggest new functionality with a new issue.
If you want to add yourself some functionality to the wrapper:
- Fork it ( https://github.com/GearPlug/facebookmarketing-python )
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Adds my new feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file facebookmarketing_python-1.1.2.tar.gz
.
File metadata
- Download URL: facebookmarketing_python-1.1.2.tar.gz
- Upload date:
- Size: 8.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d453ba7041399d24727c1f31e547fffb473762950b8a7d55376043ea88f5e092 |
|
MD5 | 1c8e556f0678400fa20afed906fe0537 |
|
BLAKE2b-256 | f5f65254ba6c8320999b2363ea918b89eebcf742e3385df92578250d95f0c1dc |
File details
Details for the file facebookmarketing_python-1.1.2-py3-none-any.whl
.
File metadata
- Download URL: facebookmarketing_python-1.1.2-py3-none-any.whl
- Upload date:
- Size: 9.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 537c9a746b2fed808d221873d97294b8dc34c87bce78699f407cbf823367dd8e |
|
MD5 | 335b1a0bf3eaf3d14870ea07e082498d |
|
BLAKE2b-256 | 709e2efd4f7eb1e600e06c1b678f242441dc26d2c29b796ddfaf0afaea247b37 |