Skip to content

Commit

Permalink
Version 0.1.0 released
Browse files Browse the repository at this point in the history
  • Loading branch information
santoshdahal2016 committed Oct 28, 2023
1 parent 5bee838 commit 36ce90e
Show file tree
Hide file tree
Showing 26 changed files with 105 additions and 97 deletions.
20 changes: 10 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# meta-api-python
# meta_api_python

Python Wrapper to various APIs from [Meta Platform](https://developers.facebook.com/docs/messenger-platform).

Expand Down Expand Up @@ -54,29 +54,29 @@ response = api.send_messages(to= <recipient_id>, messages=text_message)
> [Generic Template Messages](https://developers.facebook.com/docs/messenger-platform/implementation#receive_message) allows you to add cool elements like images, text all in a single bubble.
```python
from meta.api.api import Api
from meta.api.messages.text_message import TextMessage
from metapython import Api

from metapython.api.consts import ButtonType
from metapython.api.messages import ElementMessage, ElementsMessage, ButtonMessage, ButtonsMessage

from meta.api.messages.generic_message import Element, Elements
from meta.api.messages.button_message import Button, Buttons, ButtonType

api = Api(page_access_token=<page_access_token>)

# Generic Message
elements = Elements()
elements = ElementsMessage()

web_link_button = Button(button_type=ButtonType.WEB_URL, title="Visit Diyo Website")
web_link_button = ButtonMessage(button_type=ButtonType.WEB_URL, title="Visit Diyo Website")
web_link_button.set_url(<url>)

element1 = Element(
element1 = ElementMessage(
buttons=[web_link_button],
image_url="https://moneymitra.com/static/image/moneymitra-logo.png",
)
elements.add_element(element1)

phone_number_button = Button(button_type=ButtonType.PHONE_NUMBER, title="Call me")
phone_number_button = ButtonMessage(button_type=ButtonType.PHONE_NUMBER, title="Call me")
phone_number_button.set_payload("XXXXXXXXXXX")
element2 = Element(
element2 = ElementMessage(
buttons=[phone_number_button],
image_url=<image_url>,
)
Expand Down
Empty file removed meta/api/__init__.py
Empty file.
Empty file removed meta/api/messages/__init__.py
Empty file.
1 change: 1 addition & 0 deletions metapython/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from .api.api import Api
File renamed without changes.
4 changes: 2 additions & 2 deletions meta/api/api.py → metapython/api/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@


import requests
from meta.api.message_sender import MessageSender
from meta.api.api_request_sender import ApiRequestSender
from metapython.api.message_sender import MessageSender
from metapython.api.api_request_sender import ApiRequestSender


@dataclass
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import requests
from requests import RequestException
import traceback
from meta.api.consts import API_URL, APIEndpoint
from metapython.api.consts import API_URL, APIEndpoint
import json
from dataclasses import dataclass
import logging
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from meta.api.messages.message import Message
from metapython.api.messages.message import Message

from .consts import API_URL, APIEndpoint

Expand Down
6 changes: 6 additions & 0 deletions metapython/api/messages/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
from .text_message import TextMessage
from .action_message import ActionMessage
from .media_message import MediaMessage
from .quick_reply_message import QuickRepliesMessage, QuickReplyMessage
from .generic_message import ElementMessage, ElementsMessage
from .button_message import ButtonMessage, ButtonsMessage
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from meta.api.consts import SenderAction
from metapython.api.consts import SenderAction
from dataclasses import dataclass, asdict

@dataclass
class Action:
class ActionMessage:
"""This represent action i.e seen , typing.
"""
event: str
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from meta.api.consts import ButtonType
from metapython.api.consts import ButtonType


class Buttons:
class ButtonsMessage:
"""A list of Button objects.
Attributes:
Expand Down Expand Up @@ -39,7 +39,7 @@ def asdict(self):
}


class Button:
class ButtonMessage:
def __init__(self, button_type=ButtonType.POSTBACK, title="Button"):
"""Represent a button , used for generic message , persistent menu , ...
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
class Elements:
class ElementsMessage:
"""A list of Element objects.
Attributes:
Expand Down Expand Up @@ -33,7 +33,7 @@ def asdict(self):
}


class Element:
class ElementMessage:
def __init__(
self,
title="An element of a generic message.",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from meta.api.messages.message import Message
from metapython.api.messages.message import Message
from abc import abstractmethod
from dataclasses import dataclass, asdict

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from dataclasses import dataclass
from abc import abstractmethod, abstractclassmethod
from meta.api.consts import MessagingType, NotificationType
from metapython.api.consts import MessagingType, NotificationType


@dataclass
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from meta.api.consts import QuickReplyType
from metapython.api.consts import QuickReplyType

class QuickReplies:
class QuickRepliesMessage:
"""A list of QuickReply objects.
Attributes:
Expand Down Expand Up @@ -32,7 +32,7 @@ def asdict(self):
}


class QuickReply:
class QuickReplyMessage:
def __init__(
self,
title="Quick reply",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from meta.api.messages.message import Message
from metapython.api.messages.message import Message
from abc import abstractmethod
from dataclasses import dataclass, asdict

Expand Down
31 changes: 14 additions & 17 deletions sample.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
from meta.api.api import Api
from metapython import Api

from metapython.api.consts import MessagingType, QuickReplyType, SenderAction, MediaType, ButtonType
from metapython.api.messages import TextMessage, ActionMessage, MediaMessage, QuickRepliesMessage, QuickReplyMessage, ElementMessage, ElementsMessage, ButtonMessage, ButtonsMessage


from meta.api.consts import MessagingType, QuickReplyType, SenderAction, MediaType
from meta.api.messages.text_message import TextMessage
from meta.api.messages.action_message import Action
from meta.api.messages.media_message import MediaMessage
from meta.api.messages.quick_reply_message import QuickReplies, QuickReply
from meta.api.messages.generic_message import Element, Elements
from meta.api.messages.button_message import Button, Buttons, ButtonType


# Initiate Api
Expand All @@ -16,7 +13,7 @@


# Action Message
action = Action(SenderAction.TYPING_ON)
action = ActionMessage(SenderAction.TYPING_ON)


# Text Message
Expand All @@ -33,32 +30,32 @@


# Button Message
buttons = Buttons(text="Please Select below options")
web_link_button = Button(button_type=ButtonType.WEB_URL, title="Visit Website")
buttons = ButtonsMessage(text="Please Select below options")
web_link_button = ButtonMessage(button_type=ButtonType.WEB_URL, title="Visit Website")
web_link_button.set_url("https://diyo.ai")
phone_number_button = Button(button_type=ButtonType.PHONE_NUMBER, title="Call me")
phone_number_button = ButtonMessage(button_type=ButtonType.PHONE_NUMBER, title="Call me")
phone_number_button.set_payload("XXXXXXXXX")
buttons.add_button(web_link_button)
buttons.add_button(phone_number_button)


# Generic Message
elements = Elements()
element1 = Element(
elements = ElementsMessage()
element1 = ElementMessage(
buttons=[web_link_button],
image_url="https://moneymitra.com/static/image/moneymitra-logo.png",
)
elements.add_element(element1)
element2 = Element(
element2 = ElementMessage(
buttons=[phone_number_button],
image_url="https://moneymitra.com/static/landing4/assets/images/home/idea-course-tulke.png",
)
elements.add_element(element2)


# Quick Reply
quick_replies = QuickReplies(text="Please provide your phone number ")
quick_replies.add_quick_reply(QuickReply(type=QuickReplyType.PHONE_NUMBER))
quick_replies = QuickRepliesMessage(text="Please provide your phone number ")
quick_replies.add_quick_reply(QuickReplyMessage(quick_reply_type=QuickReplyType.PHONE_NUMBER))



Expand Down
4 changes: 4 additions & 0 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,15 @@
PACKAGES = find_packages()

# Create the setup configuration

print(f'Name set to: {NAME}')

setup(
name=NAME,
version=VERSION,
description=DESCRIPTION,
long_description=LONG_DESCRIPTION,
long_description_content_type='text/markdown',
author=AUTHOR,
author_email=EMAIL,
url=URL,
Expand Down
8 changes: 4 additions & 4 deletions tests/api/messages/test_action_message.py
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
from meta.api.messages.action_message import Action , SenderAction
from metapython.api.messages.action_message import ActionMessage , SenderAction
import pytest


def test_creation():
action_message = Action(SenderAction.MARK_SEEN)
action_message = ActionMessage(SenderAction.MARK_SEEN)

assert action_message.event == SenderAction.MARK_SEEN


def test_creation_fail():

with pytest.raises(ValueError, match="value of param event must be 'mark_seen', 'typing_on', or 'typing_off'"):
Action("wrong_type")
ActionMessage("wrong_type")


def test_asdict():
message_dict = dict(
sender_action=SenderAction.TYPING_OFF
)

action_message_dict = Action(SenderAction.TYPING_OFF).asdict()
action_message_dict = ActionMessage(SenderAction.TYPING_OFF).asdict()

assert message_dict == action_message_dict
Loading

0 comments on commit 36ce90e

Please sign in to comment.