コード例 #1
0
class Greeter(object):

	def __init__(self, access_token):
		self.access_token = access_token
		self.requestor = Requestor(GREETER_URL)

	def setup(self):
		params = self._get_params()
		headers = self._get_headers()
		payload = self._get_payload()
		self.requestor.post(params, headers, payload)

	def _get_params(self):
		return {
			"access_token": self.access_token
		}

	def _get_headers(self):
		return {
			"Content-Type": "application/json"
		}

	def _get_payload(self):
		return json.dumps({
			"greeting":[
				{
					"locale": "default",
					"text": GREETER_TEXT
				}
		    ]
		})
コード例 #2
0
class Menu(object):
    def __init__(self, access_token):
        self.access_token = access_token
        self.requestor = Requestor(MENU_URL)

    def setup(self):
        self._make_post_request()

    def _make_post_request(self):
        """Getting started button required to be POST'd first
		"""
        params = self._get_POST_params()
        headers = self._get_headers()
        payload = self._get_payload()
        self.requestor.post(params, headers, payload)

    def _get_headers(self):
        return {"Content-Type": "application/json"}

    def _get_POST_params(self):
        return {"access_token": self.access_token}

    def _get_GET_params(self):
        return {"access_token": self.access_token, "fields": "persistent_menu"}

    def _get_payload(self):
        return json.dumps({
            "persistent_menu": [{
                "locale": "default",
                "composer_input_disabled": False,
                "call_to_actions": [self._get_actions()]
            }]
        })

    def _get_actions(self):
        return {
            "title": "Menu",
            "type": "nested",
            "call_to_actions": self._get_menu_buttons()
        }

    def _get_menu_buttons(self):
        return [
            self._get_hours_button(),
            self._get_availabilities_button(),
        ]

    def _get_hours_button(self):
        return {"title": "Hours", "type": "postback", "payload": HOURS_PAYLOAD}

    def _get_availabilities_button(self):
        return {
            "title": "Availabilities",
            "type": "postback",
            "payload": AVAILABILITIES_PAYLOAD
        }
コード例 #3
0
class GetStartedButton(object):
    def __init__(self, access_token):
        self.access_token = access_token
        self.requestor = Requestor(GET_STARTED_BUTTON_URL)

    def setup(self):
        params = self._get_params()
        headers = self._get_headers()
        payload = self._get_payload()
        self.requestor.post(params, headers, payload)

    def _get_headers(self):
        return {"Content-Type": "application/json"}

    def _get_params(self):
        return {"access_token": self.access_token}

    def _get_GET_params(self):
        return {"access_token": self.access_token, "fields": "get_started"}

    def _get_payload(self):
        return json.dumps({"get_started": {"payload": GET_STARTED_PAYLOAD}})
コード例 #4
0
class Replier(object):

	def __init__(self, access_token):
		self.access_token = access_token
		self.requestor = Requestor(REPLY_URL)

	def wit_send(self, request, response):
		recipient_id = request['session_id']
		message = response['text']
		params = self._get_params()
		headers = self._get_headers()
		payload = self._get_payload(recipient_id, message)
		self.requestor.post(params, headers, payload)

	def reply_with(self, recipient_id, message):
		params = self._get_params()
		headers = self._get_headers()
		payload = self._get_payload(recipient_id, message)
		self.requestor.post(params, headers, payload)

	def reply_welcome(self, recipient_id, user):
		text = self._get_welcome_text(user)
		params = self._get_params()
		headers = self._get_headers()
		payload = self._get_payload(recipient_id, text)
		self.requestor.post(params, headers, payload)

	def _get_welcome_text(self, user):
		return "Hi " + user.first_name + " " + user.last_name + ". " + WELCOME_TEXT

	def _get_params(self):
		return {
			"access_token": self.access_token
		}

	def _get_headers(self):
		return {
			"Content-Type": "application/json"
		}

	def _get_payload(self, recipient_id, message):
		return json.dumps({
			"recipient": {
				"id": recipient_id
			},
			"message": {
				"text": message
			}
		})