def refreshgoogleauthflow(request): course_code = request.GET.get('course_code') channelIds = request.GET.get('channelIds') platform = courseId = request.GET.get('platform') user = request.user youtube_plugin = settings.DATAINTEGRATION_PLUGINS['YouTube'] redirecturl= 'http://' + get_current_site(request).domain + '/dataintegration/ytAuthCallback' # store request data in temp table # there is no other way to send these with the url (in querystring) as the return url must be registered # and session var won't save due to redirect twitter_id, fb_id, forum_id, google_id, github_id, trello_id = get_smids_fromuid(user.id) t = OauthFlowTemp.objects.filter(googleid=google_id).delete() temp_transfer_data = OauthFlowTemp(googleid=google_id, course_code=course_code, platform=platform, transferdata=channelIds) temp_transfer_data.save() FLOW_YOUTUBE = OAuth2WebServerFlow( client_id=youtube_plugin.api_config_dict['CLIENT_ID'], client_secret=youtube_plugin.api_config_dict['CLIENT_SECRET'], scope=youtube_plugin.scope, redirect_uri=redirecturl ) authUri = FLOW_YOUTUBE.step1_get_authorize_url() #Redirect to REDIRECT_URI return HttpResponseRedirect(authUri)
def refreshgoogleauthflow(request): course_id = request.GET.get('course_id') channel_ids = request.GET.get('channel_ids') platform = request.GET.get('platform') unit = None try: unit = UnitOffering.objects.get(id=course_id) except UnitOffering.DoesNotExist: raise Http404 user = request.user platform_plugin = settings.DATAINTEGRATION_PLUGINS[platform] #print 'Got youtube plugin: %s' % (platform_plugin) #print 'With client ID and Secret key: %s and %s' % (platform_plugin.api_config_dict['CLIENT_ID'], platform_plugin.api_config_dict['CLIENT_SECRET']) # store request data in temp table # there is no other way to send these with the url (in querystring) as the return url must be registered # and session var won't save due to redirect twitter_id, fb_id, forum_id, blog_id, google_id, github_id, trello_id = get_smids_fromuid( user.id) t = OauthFlowTemp.objects.filter(user=request.user).delete() temp_transfer_data = OauthFlowTemp(platform=platform, transferdata=channel_ids, unit=unit, user=request.user) temp_transfer_data.save() client_id = '' client_secret = '' redirecturl = '' if platform == xapi_settings.PLATFORM_YOUTUBE: client_id = os.environ.get("YOUTUBE_CLIENT_ID") client_secret = os.environ.get("YOUTUBE_CLIENT_SECRET") redirecturl = get_youtube_callback_url(request) else: # When other Google service is integrated, there will be code here return HttpResponseServerError FLOW_YOUTUBE = OAuth2WebServerFlow(client_id=client_id, client_secret=client_secret, scope=platform_plugin.scope, redirect_uri=redirecturl) authUri = FLOW_YOUTUBE.step1_get_authorize_url() #Redirect to REDIRECT_URI return HttpResponseRedirect(authUri)
def refreshgoogleauthflow(request): course_id = request.GET.get('course_id') channel_ids = request.GET.get('channel_ids') platform = request.GET.get('platform') unit = None try: unit = UnitOffering.objects.get(id=course_id) except UnitOffering.DoesNotExist: raise Http404 user = request.user platform_plugin = settings.DATAINTEGRATION_PLUGINS[platform] #print 'Got youtube plugin: %s' % (platform_plugin) #print 'With client ID and Secret key: %s and %s' % (platform_plugin.api_config_dict['CLIENT_ID'], platform_plugin.api_config_dict['CLIENT_SECRET']) # store request data in temp table # there is no other way to send these with the url (in querystring) as the return url must be registered # and session var won't save due to redirect twitter_id, fb_id, forum_id, blog_id, google_id, github_id, trello_id = get_smids_fromuid(user.id) t = OauthFlowTemp.objects.filter(user = request.user).delete() temp_transfer_data = OauthFlowTemp(platform=platform, transferdata=channel_ids, unit=unit, user = request.user) temp_transfer_data.save() client_id = '' client_secret = '' redirecturl = '' if platform == xapi_settings.PLATFORM_YOUTUBE: client_id = os.environ.get("YOUTUBE_CLIENT_ID") client_secret = os.environ.get("YOUTUBE_CLIENT_SECRET") redirecturl = get_youtube_callback_url(request) else: # When other Google service is integrated, there will be code here return HttpResponseServerError FLOW_YOUTUBE = OAuth2WebServerFlow( client_id = client_id, client_secret = client_secret, scope = platform_plugin.scope, redirect_uri = redirecturl ) authUri = FLOW_YOUTUBE.step1_get_authorize_url() #Redirect to REDIRECT_URI return HttpResponseRedirect(authUri)
def process_trello(request): token = request.GET.get("token") key = request.GET.get("key") trello_member_url = 'https://api.trello.com/1/tokens/%s/member?key=%s' % (token, key) #Get trello member ID r = requests.get(trello_member_url) #print "got response %s" % r.json() member_json = r.json() member_id = member_json['id'] token_storage = OauthFlowTemp(googleid=member_id, transferdata=token, platform='trello') token_storage.save() request.session['trello_memberid'] = member_id return Response(member_id)