Пример #1
0
def facebook(request):
    host = request.get_host()
    """

    :param request:
    :return:
    """
    params = {
        'client_id': settings.FACEBOOK_APP_ID,
        'redirect_uri': 'http://' + host + '/facebook',
        'client_secret': settings.FACEBOOK_SECRET_KEY,
        'code': request.GET['code']
    }

    http = httplib2.Http(timeout=15)
    response, content = http.request(
        'https://graph.facebook.com/oauth/access_token?%s' %
        urllib.urlencode(params))
    print response
    print content
    # Find access token and expire (this is really gross)
    params = content.split('&')
    ACCESS_TOKEN = params[0].split('=')[1]
    EXPIRE = params[1].split('=')[1]

    # Get basic information about the person
    response, content = http.request(
        'https://graph.facebook.com/me?access_token=%s' % ACCESS_TOKEN)
    data = json.loads(content)
    # Try to find existing profile, create a new user if one doesn't exist
    try:
        user = Users.objects.get(facebook_uid=data['id'])
        #request.session['data']=data
        # print request.session.get('data','not working')
    except Users.DoesNotExist:
        user = Users()
        user.facebook_uid = data['id']
        user.user = data['name']
        user.facebook_access_token = ACCESS_TOKEN
        user.facebook_access_token_expires = EXPIRE
        user.save()

        #login(request, user)

    request.session['user'] = user
    request.session['block_sources'] = "initial"
    print request.session.get('user', 'Not working')

    # # Authenticate and log user in
    #     user = authenticate(username=profile.user.username, password=profile.facebook_uid)

    return HttpResponseRedirect('/home')
Пример #2
0
def facebook(request):
    host = request.get_host()
    """

    :param request:
    :return:
    """
    params = {
        'client_id': settings.FACEBOOK_APP_ID,
        'redirect_uri': 'http://'+host+'/facebook',
        'client_secret': settings.FACEBOOK_SECRET_KEY,
        'code': request.GET['code']
    }

    http = httplib2.Http(timeout=15)
    response, content = http.request('https://graph.facebook.com/oauth/access_token?%s' % urllib.urlencode(params))
    print response
    print content
    # Find access token and expire (this is really gross)
    params = content.split('&')
    ACCESS_TOKEN = params[0].split('=')[1]
    EXPIRE = params[1].split('=')[1]

    # Get basic information about the person
    response, content = http.request('https://graph.facebook.com/me?access_token=%s' % ACCESS_TOKEN)
    data = json.loads(content)
    # Try to find existing profile, create a new user if one doesn't exist
    try:
        user = Users.objects.get(facebook_uid=data['id'])
        #request.session['data']=data
        # print request.session.get('data','not working')
    except Users.DoesNotExist:
        user = Users()
        user.facebook_uid = data['id']
        user.user = data['name']
        user.facebook_access_token = ACCESS_TOKEN
        user.facebook_access_token_expires = EXPIRE
        user.save()

        #login(request, user)

    request.session['user'] = user
    request.session['block_sources'] = "initial"
    print request.session.get('user', 'Not working')

    # # Authenticate and log user in
    #     user = authenticate(username=profile.user.username, password=profile.facebook_uid)

    return HttpResponseRedirect('/home')
    # return render(request, "settings.html", data)