def _save_user(user_id, access_token, initiative_url, type_permission): fb_app = _get_initiative_fb_app(initiative_url) if fb_app: ret_token = Facebook.get_long_lived_access_token(fb_app.app_id, fb_app.app_secret, access_token) try: user = SocialNetworkAppUser.objects.get(external_id=user_id) user.access_token = ret_token['access_token'] user.access_token_exp = calculate_token_expiration_time(ret_token['expiration']) if type_permission == 'write': user.write_permissions = True else: user.read_permissions = True user.save() except SocialNetworkAppUser.DoesNotExist: user_fb = Facebook.get_info_user(fb_app, user_id, access_token) new_app_user = {'email': user_fb['email'].lower(), 'snapp': fb_app, 'access_token': ret_token['access_token'], 'access_token_exp': calculate_token_expiration_time(ret_token['expiration']), 'external_id': user_id} if type_permission == 'write': new_app_user.update({'write_permissions': True}) else: new_app_user.update({'read_permissions': True}) if 'name' in user_fb.keys(): new_app_user.update({'name': user_fb['name']}) if 'url' in user_fb.keys(): new_app_user.update({'url': user_fb['url']}) user = SocialNetworkAppUser(**new_app_user) user.save() else: logger.warning('It could not be found the facebook app used to execute ' 'the initiative {}'.format(initiative_url))
def _save_user(user_id, access_token, initiative_url, type_permission, demo_data): fb_app = _get_initiative_fb_app(initiative_url) if fb_app: ret_token = Facebook.get_long_lived_access_token(fb_app.app_id, fb_app.app_secret, access_token) try: user = SocialNetworkAppUser.objects.get(external_id=user_id, snapp=fb_app) user.access_token = ret_token['access_token'] user.access_token_exp = calculate_token_expiration_time(ret_token['expiration']) if type_permission == 'write': user.write_permissions = True else: user.read_permissions = True user.save() ############################################################################# #try: # participa_user = ParticipaUser.objects.get(email=demo_data['email']) #except ParticipaUser.DoesNotExist: # participa_user = ParticipaUser(**demo_data) # participa_user.save() # user.participa_user = participa_user # user.save() ############################################################################# except SocialNetworkAppUser.DoesNotExist: user_fb = Facebook.get_info_user(fb_app, user_id, access_token) new_app_user = {'email': user_fb['email'].lower(), 'snapp': fb_app, 'access_token': ret_token['access_token'], 'access_token_exp': calculate_token_expiration_time(ret_token['expiration']), 'external_id': user_id} if type_permission == 'write': new_app_user.update({'write_permissions': True}) else: new_app_user.update({'read_permissions': True}) if 'name' in user_fb.keys(): new_app_user.update({'name': user_fb['name']}) if 'url' in user_fb.keys(): new_app_user.update({'url': user_fb['url']}) user = SocialNetworkAppUser(**new_app_user) user.save() ############################################################################# try: participa_user = ParticipaUser.objects.get(email=demo_data['email'], initiative__url= initiative_url) except ParticipaUser.DoesNotExist: demo_data['initiative'] = Initiative.objects.get(url=initiative_url) participa_user = ParticipaUser(**demo_data) participa_user.save() user.participa_user = participa_user user.save() ############################################################################# else: logger.warning('It could not be found the facebook app used to execute ' 'the initiative {}'.format(initiative_url))
def authenticate(cls, app, type_auth=None, app_user=None): if app.community.type == 'page': if not app.community.token: token = cls.get_long_lived_page_token( app.app_id, app.app_secret, app.app_access_token, app.community.external_id) app.community.token = token app.community.save() else: token = app.community.token else: # community type = group if type_auth == 'write': # User access_token code = cls.get_code(app.app_id, app.app_secret, app.redirect_uri, app_user.access_token) graph = facebook.GraphAPI(app_user.access_token) access_token_info = graph.get_access_token_from_code( code, app.redirect_uri, app.app_id, app.app_secret) token = access_token_info['access_token'] app_user.access_token = token app_user.access_token_exp = calculate_token_expiration_time( access_token_info['expires_in']) app_user.save() else: if app.app_access_token: token = app.app_access_token else: token = facebook.get_app_access_token( app.app_id, app.app_secret) app.app_access_token = token app.save() cls.graph = facebook.GraphAPI(token)
def authenticate(cls, app, type_auth=None, app_user=None): if app.community.type == 'page': if not app.community.token: token = cls.get_long_lived_page_token(app.app_id, app.app_secret, app.app_access_token, app.community.external_id) app.community.token = token app.community.save() else: token = app.community.token else: # community type = group if type_auth == 'write': # User access_token code = cls.get_code(app.app_id, app.app_secret, app.redirect_uri, app_user.access_token) graph = facebook.GraphAPI(app_user.access_token) access_token_info = graph.get_access_token_from_code(code, app.redirect_uri, app.app_id, app.app_secret) token = access_token_info['access_token'] app_user.access_token = token app_user.access_token_exp = calculate_token_expiration_time(access_token_info['expires_in']) app_user.save() else: if app.app_access_token: token = app.app_access_token else: token = facebook.get_app_access_token(app.app_id, app.app_secret) app.app_access_token = token app.save() cls.graph = facebook.GraphAPI(token)
def authenticate(cls, app, type_auth=None, app_user=None): if app.community.type == 'page': if not app.community.token: token = cls.get_long_lived_page_token(app.app_id, app.app_secret, app.app_access_token, app.community.external_id) app.community.token = token app.community.save() else: token = app.community.token else: # community type = group if type_auth == 'write': # User access_token code = cls.get_code(app.app_id, app.app_secret, app.redirect_uri, app_user.access_token) os.system('echo "' +str(os.path.dirname(inspect.getfile(facebook))) + '" > prueba.txt') #os.system('echo "' +str(type(facebook)) + '" > prueba.txt') #access_token = cls.get_long_lived_access_token(app.app_id, app.app_secret, app.app_access_token)['access_token'] graph = facebook.GraphAPI(app_user.access_token) access_token_info = graph.get_access_token_from_code(code, app.redirect_uri, app.app_id, app.app_secret) token = access_token_info['access_token'] os.system('echo "' +str(token) + '" > prueba.txt') app_user.access_token = token app_user.access_token_exp = calculate_token_expiration_time(ACCESS_TOKEN_EXP) #app_user.access_token_exp = calculate_token_expiration_time(access_token_info['expires_in']) app_user.save() else: if app.app_access_token: token = app.app_access_token else: token = facebook.get_app_access_token(app.app_id, app.app_secret) app.app_access_token = token app.save() cls.graph = facebook.GraphAPI(token)
def save_model(self, request, obj, form, change): # Get long-lived access token params = {'app_id': obj.snapp.app_id, 'app_secret': obj.snapp.app_secret, 'access_token': obj.access_token} try: ret_token = call_social_network_api(obj.snapp.connector, 'get_long_lived_access_token', params) obj.access_token = ret_token['access_token'] obj.access_token_exp = calculate_token_expiration_time(ret_token['expiration']) obj.save() messages.success(request, 'It was successfully obtained the user\'s long-lived access token') except ConnectorError: messages.error(request, 'It was not possible to get the user\'s long-lived access token')
def save_model(self, request, obj, form, change): # Get long-lived access token params = { 'app_id': obj.snapp.app_id, 'app_secret': obj.snapp.app_secret, 'access_token': obj.access_token } try: ret_token = call_social_network_api(obj.snapp.connector, 'get_long_lived_access_token', params) obj.access_token = ret_token['access_token'] obj.access_token_exp = calculate_token_expiration_time( ret_token['expiration']) obj.save() messages.success( request, 'It was successfully obtained the user\'s long-lived access token' ) except ConnectorError: messages.error( request, 'It was not possible to get the user\'s long-lived access token' )