|
@@ -132,7 +132,8 @@ class AppToAppView(View):
|
|
|
url = 'https://{}/v1/users/~current/skills/{}/enablement'.format(alexa_api_endpoint, skill_id)
|
|
|
r = requests.post(headers=headers, url=url, json=data, timeout=30)
|
|
|
if r.status_code == 201:
|
|
|
- AlexaOauth.objects.filter(user_id=user_id).update(alexa_api_endpoint=alexa_api_endpoint)
|
|
|
+ AlexaOauth.objects.filter(user_id=user_id).\
|
|
|
+ update(alexa_api_endpoint=alexa_api_endpoint, link_status=1)
|
|
|
res_data = eval(r.content)
|
|
|
return response.json(0, res_data)
|
|
|
return response.json(0)
|
|
@@ -141,12 +142,24 @@ class AppToAppView(View):
|
|
|
|
|
|
@classmethod
|
|
|
def get_account_linking_and_skill_status(cls, user_id, response):
|
|
|
- request_method = 'get'
|
|
|
+ # 未连接状态响应数据
|
|
|
+ res_data = {
|
|
|
+ 'accountLink': {
|
|
|
+ 'status': 'NOT_LINKED'
|
|
|
+ },
|
|
|
+ 'status': 'DISABLED'
|
|
|
+ }
|
|
|
try:
|
|
|
- r = cls.refresh_access_token(user_id, request_method)
|
|
|
- if r is None:
|
|
|
- return response.json(173)
|
|
|
- res_data = eval(r.content)
|
|
|
+ alexa_oauth_qs = AlexaOauth.objects.filter(user_id=user_id).values('link_status')
|
|
|
+ if alexa_oauth_qs.exists():
|
|
|
+ link_status = alexa_oauth_qs[0]['link_status']
|
|
|
+ # 连接状态为1,通过api获取状态
|
|
|
+ if link_status == 1:
|
|
|
+ request_method = 'get'
|
|
|
+ r = cls.refresh_access_token(user_id, request_method)
|
|
|
+ if r is None:
|
|
|
+ return response.json(173)
|
|
|
+ res_data = eval(r.content)
|
|
|
return response.json(0, res_data)
|
|
|
except Exception as e:
|
|
|
return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
@@ -160,6 +173,7 @@ class AppToAppView(View):
|
|
|
return response.json(173)
|
|
|
# 2xx响应状态码为成功
|
|
|
assert str(r.status_code)[:1] == '2'
|
|
|
+ AlexaOauth.objects.filter(user_id=user_id).update(link_status=0)
|
|
|
return response.json(0)
|
|
|
except Exception as e:
|
|
|
return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
@@ -190,7 +204,6 @@ class AppToAppView(View):
|
|
|
|
|
|
amazon_base_uri = 'https://api.amazon.com'
|
|
|
url = amazon_base_uri + '/auth/o2/token'
|
|
|
-
|
|
|
data = {
|
|
|
'grant_type': 'refresh_token',
|
|
|
'refresh_token': amazon_refresh_token,
|