فهرست منبع

刷新令牌更新Alexa服务器令牌

locky 1 سال پیش
والد
کامیت
a0d95c4f2d
1فایلهای تغییر یافته به همراه23 افزوده شده و 2 حذف شده
  1. 23 2
      Controller/alexa/AlexaController.py

+ 23 - 2
Controller/alexa/AlexaController.py

@@ -15,6 +15,7 @@ from Ansjer.config import CONFIG_INFO, CONFIG_TEST, CONFIG_EUR
 # 域名
 ALEXA_DOMAIN = 'smart.loocam2.com'
 AMAZON_API_DOMAIN = 'api.amazon.com'
+UPDATE_TOKEN_URL = 'https://{}/appToApp/oa2/updateAmazonToken'.format(ALEXA_DOMAIN)
 
 # Alexa loocam skill配置信息
 # https://developer.amazon.com/alexa/console/ask
@@ -128,6 +129,16 @@ class AppToAppView(View):
             assert res_data.get('refresh_token')
             amazon_access_token = res_data['access_token']
             amazon_refresh_token = res_data['refresh_token']
+
+            # 更新Alexa服务器令牌
+            data = {
+                'user_id': user_id,
+                'access_token': amazon_access_token,
+                'refresh_token': amazon_refresh_token
+            }
+            r = requests.post(url=UPDATE_TOKEN_URL, data=data, timeout=10)
+            assert r.status_code == 200
+
             # 保存令牌数据
             alexa_oauth_qs = AlexaOauth.objects.filter(user_id=user_id)
             if alexa_oauth_qs.exists():
@@ -246,8 +257,18 @@ class AppToAppView(View):
         assert res_data.get('refresh_token')
         new_access_token = res_data['access_token']
         new_refresh_token = res_data['refresh_token']
-        alexa_oauth_qs.update(amazon_access_token=new_access_token, amazon_refresh_token=new_refresh_token,
-                              update_time=now_time)
+
+        # 更新Alexa服务器令牌
+        data = {
+            'user_id': user_id,
+            'access_token': new_access_token,
+            'refresh_token': new_refresh_token
+        }
+        r = requests.post(url=UPDATE_TOKEN_URL, data=data, timeout=10)
+        assert r.status_code == 200
+
+        alexa_oauth_qs.update(
+            amazon_access_token=new_access_token, amazon_refresh_token=new_refresh_token, update_time=now_time)
 
         headers = {
             'Content-Type': 'application/json',