def userinfo(request): context = initialize_context(request) token = get_token(request) print('TOKEN', token) user = get_user(token) #print(context['user']) return render(request, 'tutorial/userinfo.html', context)
def callback(request): expected_state = request.session.pop('auth_state', '') token = get_token_from_code(request.get_full_path(), expected_state) user = get_user(token) store_token(request, token) store_user(request, user) return HttpResponseRedirect(reverse('home'))
def callback(request): """ Signin Callback Response """ expected_state = request.session.pop("auth_state", "") token = get_token_from_code(request.get_full_path(), expected_state) user = get_user(token) store_token(request, token) store_user(request, user) return HttpResponseRedirect(reverse("home"))
def callback(request): # Get the state saved in session expected_state = request.session.pop('auth_state', '') # Make the token request token = get_token_from_code(request.get_full_path(), expected_state) # Get the user's profile user = get_user(token) # #Get nylas code api_client = APIClient(app_id="57j65z6aezdxuocajwwegvkyx", app_secret="du2z08iomhm6remzvzyhk8bz9") response_body = { "client_id": api_client.app_id, "name": user['givenName'], "email_address": user['mail'], "provider": "office365", "settings": { "microsoft_client_id": settings['app_id'], "microsoft_client_secret": settings['app_secret'], "microsoft_refresh_token": token['refresh_token'], "redirect_uri": settings['redirect'], }, "scopes": "email.read_only,calendar" } nylas_authorize_resp = requests.post( "https://api.nylas.com/connect/authorize", json=response_body) nylas_code = nylas_authorize_resp.json()["code"] # Get nylas access_token nylas_token_data = { "client_id": api_client.app_id, "client_secret": api_client.app_secret, "code": nylas_code, } nylas_token_resp = requests.post("https://api.nylas.com/connect/token", json=nylas_token_data) if not nylas_token_resp.ok: message = nylas_token_resp.json()["message"] return requests.Response('Bad Request') nylas_access_token = nylas_token_resp.json()["access_token"] print(nylas_access_token) # Save token and user store_token(request, token) store_user(request, user) return HttpResponseRedirect(reverse('home'))
def callback(request): # Get the state saved in session expected_state = request.session.pop('auth_state', '') # Make the token request token = get_token_from_code(request.get_full_path(), expected_state) # Get the user's profile user = get_user(token) # Save token and user store_token(request, token) store_user(request, user) return HttpResponseRedirect(reverse('home'))
def callback(request): # Get the state saved in session expected_state = request.session.pop('auth_state', '') # Make the token request token = get_token_from_code(request.get_full_path(), expected_state) # Get the user's profile user = get_user(token) try: print("Found", Junta.objects.get(user__email=user['mail'])) except: print(Junta.objects.get(user__email='*****@*****.**')) # Save token and user store_token(request, token) store_user(request, user) return HttpResponseRedirect(reverse('home'))
def callback(request): # Get the state saved in session expected_state = request.session.pop('auth_state', '') # Make the token request token = get_token_from_code(request.get_full_path(), expected_state) # Get the user's profile user = get_user(token) # Get user info # user attribute like displayName,surname,mail etc. are defined by the # institute incase you are using single-tenant. You can get these # attribute by exploring Microsoft graph-explorer. fullname = user['displayName'] split_name = fullname.split(' ') first_name = split_name[2] last_name = split_name[0] first_name = first_name.lower().title() last_name = last_name.lower().title() username = user['displayName'] password = user['surname'] email = user['mail'] try: # if use already exist user = User.objects.get(username=username) except User.DoesNotExist: # if user does not exist then create a new user user = User.objects.create_user(username, email, password) user.first_name = first_name user.last_name = last_name user.save() user = authenticate(username=username, password=password) if user is not None: login(request, user) messages.success(request, "Success: You were successfully logged in.") return redirect('home') return redirect('home')
def updatemeeting(token): # 将新会议添加到数据库中 meetinglists = [] data123 = get_user(token) #发送邮件 events = get_calendar_events(token) #获取meetinginfo近两天的会议记录 bjevents = get_bj_events(token) #获取北京会议室近两天的会议记录 hzevents = get_hz_events(token) #获取杭州会议室近两天的会议记录 kmevents = get_km_events(token) #获取昆明会议室近两天的会议记录 hpyevents = get_hpy_events(token) #获取Happyroom近两天的会议记录 njevents = get_nanj_events(token) # 获取南京会议室近两天的会议记录 qdevents = get_qd_events(token) # 获取青岛会议室近两天的会议记录 qhevents = get_qh_events(token) # 获取情海会议室近两天的会议记录 syevents = get_sanya_events(token) # 获取三亚会议室近两天的会议记录 scevents = get_sc_events(token) # 获取四川会议室近两天的会议记录 trnevents = get_trn_events(token) # 获取training会议室近两天的会议记录 vcevents = get_vc_events(token) # 获取VideoCenter会议室近两天的会议记录 bigevents = get_big_events(token) # 获取VideoRoom会议室近两天的会议记录 wlqevents = get_wlq_events(token) # 获取乌鲁木齐近两天的会议记录 xaevents = get_xa_events(token) # 获取西安会议室近两天的会议记录 meetinglists.append(events) meetinglists.append(bjevents) meetinglists.append(hzevents) meetinglists.append(hpyevents) meetinglists.append(kmevents) meetinglists.append(njevents) meetinglists.append(qdevents) meetinglists.append(qhevents) meetinglists.append(syevents) meetinglists.append(scevents) meetinglists.append(trnevents) meetinglists.append(vcevents) meetinglists.append(bigevents) meetinglists.append(wlqevents) meetinglists.append(xaevents) for i in range(0, len(meetinglists)): try: newevents(meetinglists[i], token) except Exception as e: print(e)
def calendar(request): context = initialize_context(request) token = get_token(request) events = get_calendar_events(token) user = get_user(token) mail = user.get('mail') # meeting = schedule_meeting(token) # print(meeting) # print(user, '\n\n\n\n\n') if events: # Convert the ISO 8601 date times to a datetime object # This allows the Django template to format the value nicely count = 0 for event in events['value']: start_key = event.get('start') start_key = start_key.get('dateTime') date_fixed = start_key.split('T')[0] date_fixed = str(datetime.strptime(date_fixed, '%Y-%m-%d')) date_fixed = date_fixed.split(" ")[0] todays_date = str(datetime.today()) todays_date = todays_date.split(" ")[0] organizer = event.get('organizer') organizer = organizer.get('emailAddress') organizer = organizer.get('address') # print(organizer, mail) # print(event) event_info = json.dumps(event, indent=4, sort_keys=True, default=str) json_info = json.loads(event_info) attendees = json_info['attendees'] html = json_info['body'] soup = BeautifulSoup(html['content'], "html.parser") [s.extract() for s in soup(['head', 'title'])] visible_text = soup.getText() if 'Skype' in visible_text: if mail == organizer: # print(event) if date_fixed > todays_date: event['start']['dateTime'] = dateutil.parser.parse( event['start']['dateTime']) event['end']['dateTime'] = dateutil.parser.parse( event['end']['dateTime']) count += 1 context['events'] = events['value'] # print(json.dumps(event, indent=4, sort_keys=True, default=str)) else: event['subject'] = None event['organizer'] = None else: if count < 1: request.session['flash_error'] = { 'message': 'No new meeting found by your name.', 'debug': 'No new meetings.' } else: pass return render(request, 'tutorial/calendar.html', context)