def api_twitter_connect_by_token(request): ret = None if request.method == 'POST': try: adapter = TwitterOAuthAdapter() app = adapter.get_provider().get_app(request) access_token = request.POST.get('access_token') access_token_secret = request.POST.get('access_token_secret') token = SocialToken(app=app, token=access_token) login = twitter_complete_login(request, app, access_token, access_token_secret) login.token = token login.state = SocialLogin.state_from_request(request) ret = complete_social_login(request, login) except Exception as e: # FIXME: Catch only what is needed pass if not ret: raise Http404 profile = Profile.objects.get_or_create(user=request.user)[0] profile.avatar_url = login.account.get_avatar_url() profile.save() user_source = UserResource() bundle = user_source.build_bundle(obj=request.user, request=request) bundle = user_source.full_dehydrate(bundle) bundle = user_source.alter_detail_data_to_serialize(request, bundle) return user_source.create_response(request, bundle)
def api_facebook_connect_by_token(request): ret = None if request.method == 'POST': form = FacebookConnectForm(request.POST) if form.is_valid(): try: app = providers.registry.by_id(FacebookProvider.id)\ .get_app(request) access_token = form.cleaned_data['access_token'] token = SocialToken(app=app, token=access_token) login = fb_complete_login(app, token) login.token = token login.state = SocialLogin.state_from_request(request) ret = complete_social_login(request, login) except: # FIXME: Catch only what is needed pass if not ret: raise Http404 profile = Profile.objects.get_or_create(user=request.user)[0] profile.avatar_url = login.account.get_avatar_url() profile.save() user_source = UserResource() bundle = user_source.build_bundle(obj=request.user, request=request) bundle = user_source.full_dehydrate(bundle) bundle = user_source.alter_detail_data_to_serialize(request, bundle) return user_source.create_response(request, bundle)