Skip to main content

Python client SDK for Sendbee Public API

Project description

███████╗███████╗███╗   ██╗██████╗ ██████╗ ███████╗███████╗    ██╗   ██╗██████╗      █████╗ ██████╗ ██╗
██╔════╝██╔════╝████╗  ██║██╔══██╗██╔══██╗██╔════╝██╔════╝    ██║   ██║╚════██╗    ██╔══██╗██╔══██╗██║
███████╗█████╗  ██╔██╗ ██║██║  ██║██████╔╝█████╗  █████╗      ██║   ██║ █████╔╝    ███████║██████╔╝██║
╚════██║██╔══╝  ██║╚██╗██║██║  ██║██╔══██╗██╔══╝  ██╔══╝      ╚██╗ ██╔╝██╔═══╝     ██╔══██║██╔═══╝ ██║
███████║███████╗██║ ╚████║██████╔╝██████╔╝███████╗███████╗     ╚████╔╝ ███████╗    ██║  ██║██║     ██║
╚══════╝╚══════╝╚═╝  ╚═══╝╚═════╝ ╚═════╝ ╚══════╝╚══════╝      ╚═══╝  ╚══════╝    ╚═╝  ╚═╝╚═╝     ╚═╝


                .' '.            __
       .        .   .           (__\_
        .         .         . -{{_(|8)
          ' .  . ' ' .  . '     (__/

Sendbee Python API Client

PyPI version Build Status

GitHub issues GitHub closed issues GitHub closed pull requests

PyPI - Python Version GitHub GitHub last commit

Installation

> pip install sendbee-api

Usage

Initialization

from sendbee_api import SendbeeApi

api = SendbeeApi(
    '__your_api_key_here__', '__your_secret_key_here__',
    '__business_id_here__'
)

Fetch contacts

contacts = api.contacts([tags=['...', ...]], [search_query='...'])

for contact in contacts:
    contact.id
    contact.status
    contact.folder
    contact.created_at

    contact.name
    contact.phone
    contact.email
    contact.twitter_link
    contact.facebook_link

    for tag in contact.tags:
        tag.id
        tag.name

    for note in contact.notes:
        note.value

    for custom_field in contact.custom_fields:
        custom_field.key
        custom_field.value

Subscribe contact

contact = api.subscribe_contact(
    phone='+...',
    [tags=['...', ...]], [name='...'], [email='...'],
    [address={
        'line': '...',
        'city': '...',
        'postal_code': '...'
    }],
    [facebook_link='...'],[twitter_link='...'],
    [notes=[...]], [custom_fields={...}],
    [block_notifications=[True|False]]
)

contact.id
contact.status
contact.folder
contact.created_at

contact.name
contact.phone
contact.email
contact.twitter_link
contact.facebook_link

for tag in contact.tags:
    tag.id
    tag.name

for note in contact.notes:
    note.value

for custom_field in contact.custom_fields:
    custom_field.key
    custom_field.value

Update contact

contact = api.update_contact(
    id='...',
    [phone='+...'],
    [tags=['...', ...]], [name='...'], [email='...'],
    [address={
        'line': '...',
        'city': '...',
        'postal_code': '...'
    }],
    [facebook_link='...'],[twitter_link='...'],
    [notes=[...]], [custom_fields={...}],
    [block_notifications=[True|False]]
)

contact.id
contact.status
contact.folder
contact.created_at

contact.name
contact.phone
contact.email
contact.twitter_link
contact.facebook_link

for tag in contact.tags:
    tag.id
    tag.name

for note in contact.notes:
    note.value

for custom_field in contact.custom_fields:
    custom_field.key
    custom_field.value

Fetch tags

tags = api.tags([name='...'])

for tag in tags:
    tag.id
    tag.name

Create tag

tag = api.create_tag(name='...')

tag.id
tag.name

Update tag

tag = api.update_tag(id='...', name='...')

tag.id
tag.name

Delete tag

response = api.delete_tag(id='...')

response.message

Fetch custom fields

custom_fields = api.custom_fields([search_query='...'])

for custom_field in custom_fields:
    custom_field.slug
    custom_field.name
    custom_field.type

Create custom field

custom_field = api.create_custom_field(
    name='...', type='text|number|list|date|boolean'
)

custom_field.slug
custom_field.name
custom_field.type

Update custom field

custom_field = api.update_custom_field(
    slug='...', [name='...'], [type='text|number|list|date|boolean']
)

custom_field.slug
custom_field.name
custom_field.type

Delete custom field

response = api.delete_custom_field(slug='...')

response.message

Fetch message templates

templates = api.message_templates([search_query='...'])

for template in templates:
    template.id
    template.text
    template.tags
    template.keyword
    template.language
    template.approved

Send template message

response = api.send_template_message(
    phone='+...', template_keyword='...', language='...', tags=['...', ...]
)

response.conversation_id
# save this id, and when you get sent message status requests on
# your webhook, you'll get this same id to identify the conversation

Authenticate webhook request

After activating your webhook URL in Sendbee Dashboard, we will start sending requests on that URL depending on which webhook type is linked with that webhook URL.
Every request that we make will have authorization token in header, like this:

{
    ...
    'X-Authorization': '__auth_token_here__',
    ...
}

To authenticate requests that we make to your webhook URL, take this token from request header and check it using Sendbee API Client:

from sendbee_api import SendbeeApi

api = SendbeeApi('__your_api_key_here__', '__your_secret_key_here__')

token = '...'  # taken from the request header
if api.auth.check_auth_token(token):
    print('Weeee... Sendbee sent me the data on my webhook URL \o/ :)')

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

sendbee_api-0.5.0.tar.gz (12.4 kB view hashes)

Uploaded Source

Built Distribution

sendbee_api-0.5.0-py3-none-any.whl (17.9 kB view hashes)

Uploaded Python 3

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