Fixed graphql and added method for replying on quick replies

This commit is contained in:
Kacper Ziubryniewicz
2018-12-09 01:07:33 +01:00
parent c089298f46
commit 5f9c357a15
2 changed files with 28 additions and 7 deletions

View File

@@ -1130,6 +1130,19 @@ class Client(object):
data['specific_to_list[0]'] = "fbid:{}".format(thread_id)
return self._doSendRequest(data)
def quickReply(self, quick_reply, thread_id=None, thread_type=None):
"""
Replies to a chosen quick reply
:param thread_id: User/Group ID to send to. See :ref:`intro_threads`
:param thread_type: See :ref:`intro_threads`
:type thread_type: models.ThreadType
:return: :ref:`Message ID <intro_message_ids>` of the sent message
:raises: FBchatException if request failed
"""
quick_reply.is_response = True
return self.send(Message(text=quick_reply.title, quick_replies=[quick_reply]))
def _upload(self, files):
"""
Uploads files to Facebook

View File

@@ -194,13 +194,21 @@ def graphql_to_plan(a):
return rtn
def graphql_to_quick_reply(q, is_response=False):
rtn = QuickReply(
title=q.get('title'),
image_url=q.get('image_url'),
payload=q.get('payload'),
data=q.get('data'),
is_response=is_response,
)
data = dict()
if q.get('title') is not None: data["title"] = q["title"]
if q.get('image_url') is not None: data["image_url"] = q["image_url"]
if q.get('payload') is not None: data["payload"] = q["payload"]
if q.get('data') is not None: data["data"] = q["data"]
data["is_response"] = is_response
_type = QuickReplyType(q.get('content_type').upper())
if _type == QuickReplyType.TEXT:
rtn = QuickReplyText(**data)
elif _type == QuickReplyType.LOCATION:
rtn = QuickReplyLocation(**data)
elif _type == QuickReplyType.PHONE_NUMBER:
rtn = QuickReplyPhoneNumber(**data)
elif _type == QuickReplyType.EMAIL:
rtn = QuickReplyEmail(**data)
return rtn
def graphql_to_message(message):