/python-chatfuel-class

This project was inspired by php-chatfuel-class

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Python Chatfuel Class

GitHub license Travis PyPI PyPI - Python Version GitHub stars

Descrpition: Python Wrapper for JSON API Chatfuel

This project was inspired by php-chatfuel-class

Functions List:

  • Send Text:
def sendText(self, messages = None)
  • Send Image
def sendImage(self, url_image)
  • Send Audio
def sendAudio(self, url):
  • Send Video
def sendVideo(self, url)
  • Send Text Card
def sendTextCard(self, text, buttons)
  • Send Gallery
def sendGallery(self, elements)
  • Send List
def sendList(self, elements)
  • Send Quick Reply
def sendQuickReply(self, text, quickReplies)
  • Create Element
def createElement(self, title, image, subTitle, buttons)
  • Create Button To Block
def createButtonToBlock(self, title, block, setAttributes = None)
  • Create Button To URL
def createButtonToURL(self, title, url)
  • Create PostBack Button
def createPostBackButton(self, title, url_plugin)
  • Create Call Button
def createCallButton(self, title, phoneNumber)
  • Create Share Button
def _createShareButton(self)
  • Create Attachment
def createAttachment(self, _type, payload)

You can see the code at here class_chatfuel.py

Installation

For python 2x
pip install python_chatfuel_class
For python 3x
pip3 install python_chatfuel_class

Usage

  • Send Text:
@app.route('/sendText/<text>')
def sendText(text):
    chatfuel = Chatfuel()
    chatfuel.sendText(text)
    return chatfuel.get_response()

send-text

  • Send Image:
@app.route('/sendImage/')
def sendImage():
    chatfuel = Chatfuel()
    url_image = ''
    chatfuel.sendImage(url_image)
    return chatfuel.get_response()

send-Image

  • Send Audio:
@app.route('/sendAudio/')
def sendAudio():
    chatfuel = Chatfuel()
    url_audio = ''
    chatfuel.sendAudio(url_audio)
    return chatfuel.get_response()

send-Audio

  • Send Video:
@app.route('/sendVideo/')
def sendVideo():
    chatfuel = Chatfuel()
    url_video = ''
    chatfuel.sendVideo(url_video)
    return chatfuel.get_response()

send-Video

  • Send Button to Block:
@app.route('/sendTextCard/ButtonToBlock')
def createButtonToBlock():
    chatfuel = Chatfuel()
    ButtonToBlock = chatfuel.createButtonToBlock(
        'Button To Block',
        ['#block_1', '#block_2'],
        {'setAttribute_1': 'value_1'}
    )
    chatfuel.sendTextCard('Clicking the button below!', [ButtonToBlock])
    return chatfuel.get_response()

Button to Block

  • Send Button to URL:
@app.route('/sendTextCard/ButtonToURL')
def ButtonToURL():
    chatfuel = Chatfuel()
    ButtonToURL = chatfuel.createButtonToURL(
        'Button To URL',
        'url_website',
    )
    chatfuel.sendTextCard('Clicking the button below!', [ButtonToURL])
    return chatfuel.get_response()

Button To URL

  • Send Button Post Back:
@app.route('/sendTextCard/PostBackButton')
def PostBackButton():
    chatfuel = Chatfuel()
    PostBackButton = chatfuel.createPostBackButton(
        'Post Back Button',
        'url_plugin',
    )
    chatfuel.sendTextCard('Clicking the button below!', [PostBackButton])
    return chatfuel.get_response()

PostBack Button

  • Send Button Call:
@app.route('/sendTextCard/CallButton')
def CallButton():
    chatfuel = Chatfuel()
    CallButton = chatfuel.createCallButton(
        'Call Button',
        'Phone_number', #example; +84919666666
    )
    chatfuel.sendTextCard('Clicking the button below!', [CallButton])
    return chatfuel.get_response()

Call Button

  • Send Gallery:
@app.route('/sendGallery/')
def sendGallery():
    chatfuel = Chatfuel()
    elements = []
    #maximum 3 button
    button_access_url = chatfuel.createButtonToURL('Access Website', 'https://www.google.com.vn')
    button_call = chatfuel.createCallButton('+84919666666')
    button_share = chatfuel.createShareButton()
    title = 'Send Gallery'
    image_url = ''
    subTitle = 'subTitle Item'
    for i in range(5):
        elements.append(chatfuel.createElement(title, image_url, subTitle, [button_access_url, button_call, button_share]))
    chatfuel.sendGallery(elements)
    return chatfuel.get_response()

send-Gallery

  • Send List:
@app.route('/sendList/')
def sendList():
    #minimum 2 items in one List (Elements)
    #maximum 4 items in one List (Elements)
    chatfuel = Chatfuel()
    elements = []
    button_access_url = chatfuel.createButtonToURL('Access Website', 'https://www.google.com.vn')
    title = 'Send List'
    image_url = ''
    subTitle = 'subTitle Item'
    for i in range(2):
        elements.append(chatfuel.createElement(title, image_url, subTitle, [button_access_url]))
    chatfuel.sendList(elements)
    return chatfuel.get_response()

send-List

  • Send Quick Reply:
@app.route('/sendQuickReply/')
def sendQuickReply():
    chatfuel = Chatfuel()
    button_quick_replies_attributes = chatfuel.createButtonToBlock(
        'Send Quick Reply',
        ['#block_1'],
        {'setAttributes_1': 'value_1'},
    )
    button_quick_replies = chatfuel.createButtonToBlock('Title', ['#block_1'])
    chatfuel.sendQuickReply('Text', [button_quick_replies_attributes, button_quick_replies])
    return chatfuel.get_response()

send-Quick-Reply

  • Redirect Block
@app.route('/redirectBlock/')
def redirectBlock():
    return json.dumps({"redirect_to_blocks": ["Welcome message", "Default answer"]})

Redirect Block

Demo:

Author: @Peter Dinh