def facebook_authorized(resp): next_url = request.args.get('next') or url_for('index') code = request.args.get('code') if code in (None, ''): #No code, send back to index page return redirect(url_for('index', _external=True)) response = urllib2.urlopen( "https://graph.facebook.com/oauth/access_token?%s" % urllib.urlencode( { 'client_id': app.config['FACEBOOK_ID'], 'redirect_uri': url_for('facebook_authorized', _external=True), 'client_secret': app.config['FACEBOOK_SECRET'], 'code': code })) data = response.read() params = dict([part.split('=') for part in data.split('&')]) session['facebook_access_token'] = params['access_token'] session['facebook_code'] = code response = urllib2.urlopen( "https://graph.facebook.com/me?%s" % urllib.urlencode({'access_token': session['facebook_access_token']})) data = response.read() user_info = json.loads(data) logging.info(user_info.get('name')) facebook_id = user_info.get('id') hubid = u'facebook-%s' % facebook_id user = HubUser.find(hubid) if user is None: #This is the first time this Facebook user has signed in #to hub-ology. We'll need to create a new HubUser for them. user = HubUser(socnet=u'facebook', userid=facebook_id, hubid=hubid, name=user_info.get('name')) user.username = user_info.get('username') user.profile_image_url = u'https://graph.facebook.com/%s/picture' % user_info.get( 'username') user.link = user_info.get('link') user.gender = user_info.get('gender') #Save the user user.put() login_user(user) #Redirect the user to the 'hub' return redirect(url_for('hub', _external=True))
def facebook_authorized(resp): next_url = request.args.get('next') or url_for('index') code = request.args.get('code') if code in (None, ''): #No code, send back to index page return redirect(url_for('index', _external=True)) response = urllib2.urlopen("https://graph.facebook.com/oauth/access_token?%s" % urllib.urlencode({'client_id': app.config['FACEBOOK_ID'], 'redirect_uri': url_for('facebook_authorized', _external=True), 'client_secret': app.config['FACEBOOK_SECRET'], 'code':code})) data = response.read() params = dict([part.split('=') for part in data.split('&')]) session['facebook_access_token'] = params['access_token'] session['facebook_code'] = code response = urllib2.urlopen("https://graph.facebook.com/me?%s" % urllib.urlencode({'access_token': session['facebook_access_token']})) data = response.read() user_info = json.loads(data) logging.info(user_info.get('name')) facebook_id = user_info.get('id') hubid = u'facebook-%s' % facebook_id user = HubUser.find(hubid) if user is None: #This is the first time this Facebook user has signed in #to hub-ology. We'll need to create a new HubUser for them. user = HubUser(socnet=u'facebook', userid=facebook_id, hubid=hubid, name=user_info.get('name')) user.username = user_info.get('username') user.profile_image_url = u'https://graph.facebook.com/%s/picture' % user_info.get('username') user.link = user_info.get('link') user.gender = user_info.get('gender') #Save the user user.put() login_user(user) #Redirect the user to the 'hub' return redirect(url_for('hub', _external=True))
def twitter_authorized(resp): next_url = request.args.get('next') or url_for('index') if resp is None: return redirect(next_url) session['twitter_token'] = (resp['oauth_token'], resp['oauth_token_secret']) #Fetch twitter profile information info = twitter.get('users/show.json', data={'user_id': resp['user_id']}) if info.status == 200: hubid = u'twitter-%s' % resp['user_id'] user = HubUser.find(hubid) if user is None: #This is the first time this twitter user has signed in #to hub-ology. We'll need to create a new HubUser for them. user = HubUser(socnet=u'twitter', userid=resp['user_id'], hubid=hubid, name=info.data.get('name')) user.profile_image_url = info.data.get('profile_image_url') user.location_name = info.data.get('location') user.set_location(geocode_location(user.location_name)) user.url = info.data.get('url') user.username = resp['screen_name'] user.link = u'https://twitter.com/#!/%s' % resp['screen_name'] #Save the user user.put() login_user(user) #Redirect the user to the 'hub' return redirect(url_for('hub', _external=True)) else: logging.error( 'Unable to load profile information for twitter user: %s' % session['twitter_user']) return redirect(url_for('sign_in', _external=True))
def twitter_authorized(resp): next_url = request.args.get('next') or url_for('index') if resp is None: return redirect(next_url) session['twitter_token'] = ( resp['oauth_token'], resp['oauth_token_secret'] ) #Fetch twitter profile information info = twitter.get('users/show.json', data={'user_id':resp['user_id']}) if info.status == 200: hubid = u'twitter-%s' % resp['user_id'] user = HubUser.find(hubid) if user is None: #This is the first time this twitter user has signed in #to hub-ology. We'll need to create a new HubUser for them. user = HubUser(socnet=u'twitter', userid=resp['user_id'], hubid=hubid, name=info.data.get('name')) user.profile_image_url = info.data.get('profile_image_url') user.location_name = info.data.get('location') user.set_location(geocode_location(user.location_name)) user.url = info.data.get('url') user.username = resp['screen_name'] user.link = u'https://twitter.com/#!/%s' % resp['screen_name'] #Save the user user.put() login_user(user) #Redirect the user to the 'hub' return redirect(url_for('hub', _external=True)) else: logging.error('Unable to load profile information for twitter user: %s' % session['twitter_user']) return redirect(url_for('sign_in', _external=True))