Skip to main content

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:

  1. Fork it ( https://github.com/GearPlug/facebookmarketing-python )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Adds my new feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

facebookmarketing_python-1.1.2.tar.gz (8.8 kB view details)

Uploaded Source

Built Distribution

facebookmarketing_python-1.1.2-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

File details

Details for the file facebookmarketing_python-1.1.2.tar.gz.

File metadata

File hashes

Hashes for facebookmarketing_python-1.1.2.tar.gz
Algorithm Hash digest
SHA256 d453ba7041399d24727c1f31e547fffb473762950b8a7d55376043ea88f5e092
MD5 1c8e556f0678400fa20afed906fe0537
BLAKE2b-256 f5f65254ba6c8320999b2363ea918b89eebcf742e3385df92578250d95f0c1dc

See more details on using hashes here.

File details

Details for the file facebookmarketing_python-1.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for facebookmarketing_python-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 537c9a746b2fed808d221873d97294b8dc34c87bce78699f407cbf823367dd8e
MD5 335b1a0bf3eaf3d14870ea07e082498d
BLAKE2b-256 709e2efd4f7eb1e600e06c1b678f242441dc26d2c29b796ddfaf0afaea247b37

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page