code: def quickReply(self, quick_reply, payload=None, thread_id=None, thread_type=None):
          
          quick_reply.is_response = True
          if isinstance(quick_reply, QuickReplyText):
              return self.send(
                  Message(text=quick_reply.title, quick_replies=[quick_reply])
              )
          elif isinstance(quick_reply, QuickReplyLocation):
              if not isinstance(payload, LocationAttachment):
                  raise ValueError(
                      "Payload must be an instance of `fbchat.models.LocationAttachment`"
                  )
              return self.sendLocation(
                  payload, thread_id=thread_id, thread_type=thread_type
              )
          elif isinstance(quick_reply, QuickReplyEmail):
              if not payload:
                  payload = self.getEmails()[0]
              quick_reply.external_payload = quick_reply.payload
              quick_reply.payload = payload
              return self.send(Message(text=payload, quick_replies=[quick_reply]))
          elif isinstance(quick_reply, QuickReplyPhoneNumber):
              if not payload:
                  payload = self.getPhoneNumbers()[0]
              quick_reply.external_payload = quick_reply.payload
              quick_reply.payload = payload
              return self.send(Message(text=payload, quick_replies=[quick_reply]))
docs: Replies to a chosen quick reply
  
          :param quick_reply: Quick reply to reply to
          :param payload: Optional answer to the quick reply
          :param thread_id: User/Group ID to send to. See :ref:`intro_threads`
          :param thread_type: See :ref:`intro_threads`
          :type quick_reply: models.QuickReply
          :type thread_type: models.ThreadType
          :return: :ref:`Message ID <intro_message_ids>` of the sent message
          :raises: FBchatException if request failed