Exemplo n.º 1
0
def login():
    if not 'user_id' in session:
        if request.args.get('code', False):
            fb = FB(current_app.config['FACEBOOK']['APP_ID'],
                    current_app.config['FACEBOOK']['APP_SECRET'])
            access_token, expires = fb.get_access_token(request.args['code'])
            graph = Graph(access_token)

            profile_data = graph.get('/me', {})
            user = User.all().filter('facebook_id =', profile_data['id']).get()
            if user is None:
                user = User()
                user.facebook_id = profile_data['id'].decode('utf-8')
                user.name = u"{0}{1}".format(profile_data['last_name'],
                                             profile_data['first_name'])
                image_url = graph.get('/me/picture',
                                      {'redirect': False})['data']['url']
                user.profile_image = image_url.decode('utf-8')
                user.put()

            fb_session = FacebookSession.all().filter('user ='******'user_id'] = user.key().id_or_name()
        else:
            return render_template('login.html',
                                   facebook=current_app.config['FACEBOOK'])
    return redirect(url_for('groups.group_list'))