Exemple #1
0
def facebook(request):
    access_token_url = 'https://graph.facebook.com/v2.3/oauth/access_token'
    graph_api_url = 'https://graph.facebook.com/v2.3/me'

    # print request.data

    params = {
        'client_id': request.data['clientId'],
        'redirect_uri': request.data['redirectUri'],
        'client_secret': settings.FACEBOOK_SECRET,
        'code': request.data['code']
    }

    # Step 1. Exchange authorization code for access token.
    r = requests.get(access_token_url, params=params)
    access_token = json.loads(r.text)

    # Step 2. Retrieve information about the current user.
    r = requests.get(graph_api_url, params=access_token)
    profile = json.loads(r.text)


    profile["token"] = request.jwtauth
    current_user = request.jwtuser

    user = User.objects.get(pk=current_user.id)
    if user is None:
        print "NO USER!!"
        ### MAKE A NEW USER!!!

    # print len(params["code"])
    # print len(access_token)

    if hasattr( user, 'useraccounts' ):
        print "HAS ACCOUNTS"
        accounts = user.useraccounts
        accounts.facebook = True
        accounts.facebook_code = request.data['code']
        accounts.facebook_token = access_token['access_token']
        accounts.facebook_id = profile["id"]
        accounts.facebook_name = profile["name"]
        accounts.save()
    else:
        print "NO ACCOUNTS"
        accounts = UserAccounts()
        accounts.user = user
        accounts.facebook = True
        accounts.facebook_code = request.data['code']
        accounts.facebook_token = access_token['access_token']
        accounts.facebook_id = profile["id"]
        accounts.facebook_name = profile["name"]
        accounts.save()
        user.useraccounts = accounts
        user.save()
        print user.useraccounts

    print profile
    return Response(profile)
Exemple #2
0
def facebook(request):
    access_token_url = 'https://graph.facebook.com/v2.3/oauth/access_token'
    graph_api_url = 'https://graph.facebook.com/v2.3/me'

    print "request.user:"******"request.auth:", request.auth
    print "request.jwtuser:"******"request.jwtauth:", request.jwtauth

    params = {
        'client_id': request.data['clientId'],
        'redirect_uri': request.data['redirectUri'],
        'client_secret': settings.FACEBOOK_SECRET,
        'code': request.data['code']
    }

    # Step 1. Exchange authorization code for access token.
    r = requests.get(access_token_url, params=params)
    access_token = json.loads(r.text)

    # Step 2. Retrieve information about the current user.
    r = requests.get(graph_api_url, params=access_token)
    profile = json.loads(r.text)

    current_user = request.jwtuser
    user = User.objects.get(pk=current_user.id)
    if user is None:
        print "NO USER!!"
        ### MAKE A NEW USER!!!

    if hasattr( user, 'useraccounts' ):
        print "HAS ACCOUNTS"
        accounts = user.useraccounts
        accounts.facebook = True
        accounts.facebook_code = request.data['code']
        accounts.facebook_token = access_token['access_token']
        accounts.facebook_id = profile["id"]
        accounts.facebook_name = profile["name"]
        accounts.save()
    else:
        print "NO ACCOUNTS"
        accounts = UserAccounts()
        accounts.user = user
        accounts.facebook = True
        accounts.facebook_code = request.data['code']
        accounts.facebook_token = access_token['access_token']
        accounts.facebook_id = profile["id"]
        accounts.facebook_name = profile["name"]
        accounts.save()
        user.useraccounts = accounts
        user.save()
        print user.useraccounts

    profile["token"] = request.jwtauth
    pprint(profile)
    return Response(profile)