Pārlūkot izejas kodu

增加alexa区域事件网关区域

lang 4 gadi atpakaļ
vecāks
revīzija
ce224edd81
4 mainītis faili ar 22 papildinājumiem un 8 dzēšanām
  1. 6 0
      azoauth/config.py
  2. 12 7
      controller/deviceStatus.py
  3. 3 1
      controller/index.py
  4. 1 0
      model/models.py

+ 6 - 0
azoauth/config.py

@@ -27,3 +27,9 @@ PORT_PREFIX = '8554'
 # PORT_PREFIX = '443'
 #RTSP_PREFIX = 'rtsps'
 RTSP_PREFIX = 'rtsp'
+ALEXA_EVENT_API = {
+    #美洲
+    'NA': 'https://api.amazonalexa.com/v3/events',
+    #欧洲
+    'EU' : 'https://api.eu.amazonalexa.com/v3/events'
+}

+ 12 - 7
controller/deviceStatus.py

@@ -23,6 +23,8 @@ from model.models import AlexaAuthModel
 from object.RedisObject import RedisObject
 from django.utils.decorators import method_decorator
 from django.views.decorators.csrf import csrf_exempt
+from azoauth.config import *
+
 
 
 
@@ -62,6 +64,7 @@ class deviceStatus(TemplateView):
         access_token = request_dict.get("access_token", '')
         refresh_token = request_dict.get("refresh_token", '')
         token = request_dict.get("token", '')
+        alexa_region = request_dict.get("region", '')
         logger = logging.getLogger('django')
         logger.info('login-------------begin---token')
         logger.info(access_token)
@@ -75,14 +78,17 @@ class deviceStatus(TemplateView):
                 token = token,
                 expiresTime = nowTime + 3200,
                 addTime=nowTime,
-                updTime=nowTime)
+                updTime=nowTime,
+                alexa_region=alexa_region,
+            )
         else:
             alexAuth.update(
                 access_token = access_token,
                 refresh_token = refresh_token,
                 expiresTime = nowTime + 3200,
                 token = token,
-                updTime=nowTime
+                updTime=nowTime,
+                alexa_region=alexa_region,
             )
         return JsonResponse({'code':200,'msg':'success'})
 
@@ -96,14 +102,11 @@ class deviceStatus(TemplateView):
         uid_nick = request_dict.get("uid_nick", '')
         encrypt_pwd = request_dict.get("password", '')
         region = request_dict.get("region", 'EN')
-
-
         if UID == '' or userID == '' or uid_nick == '' or encrypt_pwd == '':
             return JsonResponse({'code':101,'msg':'fail'})
 
         commonService = CommonService()
         password = commonService.decode_pwd(encrypt_pwd)
-
         alexAuth = AlexaAuthModel.objects.filter(userID=userID)
         if not alexAuth.exists():
             logger.info('not found user')
@@ -114,6 +117,7 @@ class deviceStatus(TemplateView):
         now_time = int(time.time())
         access_token = info[0]['access_token']
         refresh_token = info[0]['refresh_token']
+        alexa_region = info[0]['alexa_region']
 
         if now_time > expiresTime:
             logger.info(refresh_token)
@@ -148,7 +152,7 @@ class deviceStatus(TemplateView):
             uid_rtsp_qs.region = 'EN'
             uid_rtsp_qs.save()
 
-        api_uri = 'https://api.amazonalexa.com/v3/events'
+        api_uri = ALEXA_EVENT_API[alexa_region]
         messageId = str(uuid.uuid4()).strip()
         bearer_access_token = "Bearer {access_token}".format(access_token=access_token)
         headers =  {"content-type": "application/json", "Authorization": bearer_access_token}
@@ -223,6 +227,7 @@ class deviceStatus(TemplateView):
         refresh_token = info[0]['refresh_token']
         now_time = int(time.time())
         access_token = info[0]['access_token']
+        alexa_region = info[0]['alexa_region']
 
         if now_time > expiresTime:
             res = self.getRefreshToken(refresh_token)
@@ -266,7 +271,7 @@ class deviceStatus(TemplateView):
         }
         # return JsonResponse({"res": headers})
 
-        api_uri = 'https://api.amazonalexa.com/v3/events'
+        api_uri = ALEXA_EVENT_API[alexa_region]
         response = requests.post(api_uri, json=payload, headers=headers)
         logger.info('--------delete_response')
         logger.info(response)

+ 3 - 1
controller/index.py

@@ -427,7 +427,7 @@ class oa2DiscoveryDevice(TemplateView):
             userID = user_qs.userID
 
             #更新事件网关接口
-            alexAuth = AlexaAuthModel.objects.filter(token=access_token)
+            alexAuth = AlexaAuthModel.objects.filter(token=access_token).order_by('-addTime')
             if alexAuth.exists():
                 auth_res = alexAuth.values()
                 event_access_token = auth_res[0]['access_token']
@@ -436,6 +436,7 @@ class oa2DiscoveryDevice(TemplateView):
                 event_expiresTime = auth_res[0]['expiresTime']
                 event_addTime = auth_res[0]['addTime']
                 event_updTime = auth_res[0]['updTime']
+                event_alexa_region = auth_res[0]['alexa_region']
                 AlexaAuthModel.objects.filter(userID = userID).delete()
                 alexAuth.delete()
                 logger.info('update_event_access_token')
@@ -448,6 +449,7 @@ class oa2DiscoveryDevice(TemplateView):
                     expiresTime = event_expiresTime,
                     addTime = event_addTime,
                     updTime = event_updTime,
+                    alexa_region = event_alexa_region,
                 )
 
             auth_request_url = '{SERVER_PREFIX}/oalexa/discoveryuid'.format(SERVER_PREFIX=SERVER_PREFIX)

+ 1 - 0
model/models.py

@@ -51,6 +51,7 @@ class AlexaAuthModel(models.Model):
     expiresTime = models.IntegerField(verbose_name='过期时间', default=0)
     addTime = models.IntegerField(verbose_name='添加时间', default=0)
     updTime = models.IntegerField(verbose_name='更新时间', default=0)
+    alexa_region = models.IntegerField(max_length=10, unique=False, default='', verbose_name='alexa区域')
 
     class Meta:
         ordering = ('-addTime',)