示例#1
0
    def get_token():
        """ Get the access token
            :return string
        """

        refresh_token = Config.get_config(Config.FIELD_REFRESH_TOKEN)

        if refresh_token:

            client_id = Config.get_config(Config.FIELD_CLIENT_ID)
            client_secret = Config.get_config(Config.FIELD_CLIENT_SECRET)

            auth_data = {
                "client_id": client_id,
                "client_secret": client_secret,
                "refresh_token": refresh_token,
                "grant_type": "refresh_token"
            }

            result = requests.post(AlexaService.AMAZON_TOKEN_URL,
                                   data=auth_data)
            resp = json.loads(result.text)
            Config.save_config(Config.FIELD_ACCESS_TOKEN,
                               resp['refresh_token'])

            return resp['access_token']

        else:
            return False
示例#2
0
    def code(self, var=None, **params):
        """ The code page
        """

        client_id = Config.get_config(Config.FIELD_CLIENT_ID)
        client_secret = Config.get_config(Config.FIELD_CLIENT_SECRET)

        code = urllib.quote(cherrypy.request.params['code'])
        callback = cherrypy.url()
        payload = {
            "client_id": client_id,
            "client_secret": client_secret,
            "code": code,
            "grant_type": "authorization_code",
            "redirect_uri": callback
        }
        result = requests.post(AlexaService.AMAZON_TOKEN_URL, data=payload)
        result = result.json()

        # Save the refresh token and reset access token
        Config.save_config(Config.FIELD_REFRESH_TOKEN,
                           format(result['refresh_token']))
        Config.save_config(Config.FIELD_ACCESS_TOKEN, "")

        html = "<b>Success!</b><br/>"
        html += "Refresh token has been added to your credentials file.<br/>"
        html += "You may now reboot the Pi or restart the service.<br/>"
        html += "Your token: %s" % result['refresh_token']

        return html