Exemple #1
0
    def get_user(self, environ):
        session = environ.get('beaker.session')
        if session.get("uid", None):
            return session

        auth = FacebookGraphMixin(environ)

        if auth.get_argument('error', None):
            log.debug('User denied attributes exchange')
            raise UserDenied()

        container = {}

        def get_user_callback(user):
            if not user:
                raise NegotiationError()

            container['uid'] = user.get('email')
            container['attrs'] = user
            container['parsed'] = {
                'uid':
                user['id'],
                'email':
                user.get('email'),
                'username':
                user.get('username'),
                'screen_name':
                user.get('name'),
                'first_name':
                user.get('first_name'),
                'last_name':
                user.get('last_name'),
                'language':
                user.get('locale'),
                'profile_url':
                user.get('link'),
                'profile_image_small':
                self.PROFILE_IMAGE_SMALL_URL.format(id=user['id']),
                'profile_image':
                self.PROFILE_IMAGE_URL.format(id=user['id']),
            }
            session.update(container)
            session.save()

        auth.get_authenticated_user(
            redirect_uri=self.callback_url,
            client_id=self.settings['facebook_api_key'],
            client_secret=self.settings['facebook_secret'],
            code=auth.get_argument('code'),
            callback=get_user_callback)

        return container
Exemple #2
0
    def get_user(self, environ):
        session = environ.get('beaker.session')
        if session.get("uid", None):
            return session

        auth = FacebookGraphMixin(environ)

        if auth.get_argument('error', None):
            log.debug('User denied attributes exchange')
            raise UserDenied()

        container = {}

        def get_user_callback(user):
            if not user:
                raise NegotiationError()

            container['uid'] = user.get('email')
            container['attrs'] = user
            container['parsed'] = {
                'uid': user['id'],
                'email': user.get('email'),
                'username': user.get('username'),
                'screen_name': user.get('name'),
                'first_name': user.get('first_name'),
                'last_name': user.get('last_name'),
                'language': user.get('locale'),
                'profile_url': user.get('link'),
                'profile_image_small': self.PROFILE_IMAGE_SMALL_URL.format(
                    id=user['id']),
                'profile_image': self.PROFILE_IMAGE_URL.format(id=user['id']),
            }
            session.update(container)
            session.save()

        auth.get_authenticated_user(
            redirect_uri=self.callback_url,
            client_id=self.settings['facebook_api_key'],
            client_secret=self.settings['facebook_secret'],
            code=auth.get_argument('code'),
            callback=get_user_callback)

        return container
Exemple #3
0
    def get_user(self, environ):
        session = environ.get("beaker.session")
        if session.get("uid", None):
            return session

        auth = FacebookGraphMixin(environ)

        if auth.get_argument("error", None):
            log.debug("User denied attributes exchange")
            raise UserDenied()

        container = {}

        def get_user_callback(user):
            if not user:
                raise NegotiationError()

            container["uid"] = user.get("email")
            container["attrs"] = user
            container["parsed"] = {
                "uid": user["id"],
                "email": user.get("email"),
                "username": user.get("username"),
                "screen_name": user.get("name"),
                "first_name": user.get("first_name"),
                "last_name": user.get("last_name"),
                "language": user.get("locale"),
                "profile_url": user.get("link"),
                "profile_image_small": self.PROFILE_IMAGE_SMALL_URL.format(id=user["id"]),
                "profile_image": self.PROFILE_IMAGE_URL.format(id=user["id"]),
            }
            session.update(container)
            session.save()

        auth.get_authenticated_user(
            redirect_uri=self.callback_url,
            client_id=self.settings["facebook_api_key"],
            client_secret=self.settings["facebook_secret"],
            code=auth.get_argument("code"),
            callback=get_user_callback,
        )

        return container