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)
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)