|
@@ -5,12 +5,22 @@ from django.conf import settings
|
|
from .models import UserModel
|
|
from .models import UserModel
|
|
from requests import get
|
|
from requests import get
|
|
|
|
|
|
-ACCESS_TOKEN_URI = settings.HOST_URI + '/gmb_access_token/token/access_toke_of_user'
|
|
|
|
|
|
+
|
|
|
|
+def get_access_token(user_model):
|
|
|
|
+ if user_model.expiry > timezone.now():
|
|
|
|
+ return user_model.access_token
|
|
|
|
+ else:
|
|
|
|
+ access_token, expires_in = refresh_access_token(user_model.refresh_token)
|
|
|
|
+ user_model.access_token = access_token
|
|
|
|
+ user_model.expiry = timezone.now() + timezone.timedelta(seconds=expires_in)
|
|
|
|
+ user_model.save()
|
|
|
|
+ return access_token
|
|
|
|
|
|
|
|
|
|
def get_auth_header():
|
|
def get_auth_header():
|
|
- # Make a header with access key for making request in google-my-business server.
|
|
|
|
- access_token = get(ACCESS_TOKEN_URI).text
|
|
|
|
|
|
+ user = User.objects.get(username='admin@ercare')
|
|
|
|
+ user_model = UserModel.objects.get(user=user)
|
|
|
|
+ access_token = get_access_token(user_model)
|
|
headers = {
|
|
headers = {
|
|
'authorization': 'Bearer ' + access_token,
|
|
'authorization': 'Bearer ' + access_token,
|
|
'content-type': 'application/json'
|
|
'content-type': 'application/json'
|
|
@@ -18,36 +28,28 @@ def get_auth_header():
|
|
return headers
|
|
return headers
|
|
|
|
|
|
|
|
|
|
-def has_expired(credentials):
|
|
|
|
- expiry_time = credentials['expiry']
|
|
|
|
- now = str(timezone.datetime.now())
|
|
|
|
- return now > expiry_time
|
|
|
|
|
|
+# def has_expired(credentials):
|
|
|
|
+# expiry_time = credentials['expiry']
|
|
|
|
+# now = str(timezone.datetime.now())
|
|
|
|
+# return now > expiry_time
|
|
|
|
|
|
|
|
|
|
-def get_access_token(request):
|
|
|
|
- if 'credentials' in request.session and not has_expired(request.session['credentials']):
|
|
|
|
- cred = request.session['credentials']
|
|
|
|
- return cred['access_token']
|
|
|
|
- access_token, expires_in = refresh_access_token()
|
|
|
|
- expired_at = timezone.datetime.now() + timezone.timedelta(seconds=expires_in)
|
|
|
|
- expiry = str(expired_at)
|
|
|
|
- credentials = {
|
|
|
|
- 'access_token': access_token,
|
|
|
|
- 'expiry': expiry
|
|
|
|
- }
|
|
|
|
- request.session['credentials'] = credentials
|
|
|
|
- return credentials['access_token']
|
|
|
|
-
|
|
|
|
|
|
+# def get_access_token(request):
|
|
|
|
+# if 'credentials' in request.session and not has_expired(request.session['credentials']):
|
|
|
|
+# cred = request.session['credentials']
|
|
|
|
+# return cred['access_token']
|
|
|
|
+# access_token, expires_in = refresh_access_token()
|
|
|
|
+# expired_at = timezone.datetime.now() + timezone.timedelta(seconds=expires_in)
|
|
|
|
+# expiry = str(expired_at)
|
|
|
|
+# credentials = {
|
|
|
|
+# 'access_token': access_token,
|
|
|
|
+# 'expiry': expiry
|
|
|
|
+# }
|
|
|
|
+# request.session['credentials'] = credentials
|
|
|
|
+# return credentials['access_token']
|
|
|
|
|
|
-def refresh_access_token():
|
|
|
|
- user = User.objects.filter(username='admin@ercare').first()
|
|
|
|
- uid = user.id
|
|
|
|
- user = UserModel.objects.filter(pk=uid).first()
|
|
|
|
- if user:
|
|
|
|
- refresh_token = user.refresh_token
|
|
|
|
- else:
|
|
|
|
- return None
|
|
|
|
|
|
|
|
|
|
+def refresh_access_token(refresh_token):
|
|
client_id = settings.CLIENT_ID
|
|
client_id = settings.CLIENT_ID
|
|
client_secret = settings.CLIENT_SECRET
|
|
client_secret = settings.CLIENT_SECRET
|
|
token_uri = settings.TOKEN_URI
|
|
token_uri = settings.TOKEN_URI
|