Explorar el Código

企业微信(testApi)

guanhailong hace 2 años
padre
commit
ba90c6d8aa
Se han modificado 2 ficheros con 105 adiciones y 0 borrados
  1. 1 0
      azoauth/urls.py
  2. 104 0
      controller/index.py

+ 1 - 0
azoauth/urls.py

@@ -45,6 +45,7 @@ urlpatterns = [
 
     # 更新设备状态到alexa网关.
     url(r'^deviceStatus/(?P<operation>.*)$', deviceStatus.deviceStatus.as_view()),
+    url(r'^vseesTest/(?P<operation>.*)', index.VesseTest.as_view()),  # test
 
     # 域名备案网站
     re_path('(?P<path>.*)', beian.beianPath),

+ 104 - 0
controller/index.py

@@ -789,3 +789,107 @@ class powerController(TemplateView):
         else:
             logger.info('请求MQTT下发指令成功')
             return JsonResponse({'result_code': '0'})
+
+
+class VesseTest(TemplateView):
+    def get(self, request, *args, **kwargs):
+        request.encoding = 'utf-8'
+        operation = kwargs.get('operation')
+        return self.validation(request.GET, operation, request)
+
+    def post(self, request, *args, **kwargs):
+        request.encoding = 'utf-8'
+        operation = kwargs.get('operation')
+        return self.validation(request.POST, operation, request)
+
+    def validation(self, request_dict, operation, request):
+        response = ResponseObject()
+
+        if operation == 'get-token':  # 获取token
+            return self.get_token(response)
+        elif operation == 'get-user-id':  # 获取userid
+            return self.get_user_id(request_dict, response, request)
+        elif operation == 'get-user-info':  # 获取用户信息
+            return self.get_user_info(request_dict, response, request)
+
+    def get_token(self, response):
+        data = {
+            'corpid': 'ww467ec1685e8262e6',
+            'corpsecret': 'IeUoaQ-0hEhEduCQq1zyfVXjfeZpMsThK1nklszRzUY'
+        }
+        try:
+            token_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken'
+            token_response = requests.get(token_url, params=data)
+            if token_response.status_code == 200:
+                data = token_response.json()
+                access_token = data.get("access_token")
+                if access_token:
+                    return response.json(0, {'access_token': access_token})
+                else:
+                    return response.json(0, "Failed to get AccessToken.")
+            else:
+                code = token_response.status_code
+                content = token_response.content
+                return response.json(code, content)
+        except requests.exceptions.RequestException as e:
+            print(e)
+            return response.json(500, repr(e))
+
+    def get_user_id(self, request_dict, response, request):
+        access_token = request_dict.get('access_token', None)
+        code = request_dict.get('code', None)
+        if not all([access_token, code]):
+            return response.json(444, 'error: access_token, code')
+        data = {
+            'access_token': access_token,
+            'code': code
+        }
+        try:
+            token_url = 'https://qyapi.weixin.qq.com/cgi-bin/auth/getuserinfo'
+            token_response = requests.get(token_url, params=data)
+            if token_response.status_code == 200:
+                data = token_response.json()
+                userid = data.get("userid")
+                if userid:
+                    return response.json(0, {'userid': userid})
+                else:
+                    code = token_response.status_code
+                    content = token_response.content
+                    return response.json(code, content)
+        except Exception as e:
+            print(e)
+            return response.json(500, repr(e))
+
+    def get_user_info(self, request_dict, response, request):
+        access_token = request_dict.get('access_token', None)
+        userid = request_dict.get('userid', None)
+        if not all([access_token, userid]):
+            return response.json(444, 'error: access_token, userid')
+        data = {
+            'access_token': access_token,
+            'userid': userid
+        }
+        try:
+            token_url = 'https://qyapi.weixin.qq.com/cgi-bin/user/get'
+            token_response = requests.get(token_url, params=data)
+            if token_response.status_code == 200:
+                data = token_response.json()
+                userid = data.get("userid")
+                name = data.get('name')
+                position = data.get('position')
+                status = data.get('status')
+                if userid:
+                    url_data = {
+                        'userid': userid,
+                        'name': name,
+                        'position': position,
+                        'status': status
+                    }
+                    return response.json(0, {'data': url_data})
+                else:
+                    code = token_response.status_code
+                    content = token_response.content
+                    return response.json(code, content)
+        except Exception as e:
+            print(e)
+            return response.json(500, repr(e))