83 lines
2.0 KiB
Python
83 lines
2.0 KiB
Python
from dingtalk.client import *
|
||
import requests
|
||
from pwdselfservice.local_settings import *
|
||
|
||
|
||
def ding_get_access_token():
|
||
resp = requests.get(
|
||
url=DING_URL + "/gettoken",
|
||
params=dict(appid=DING_SELF_APP_ID, appsecret=DING_SELF_APP_SECRET)
|
||
)
|
||
resp = resp.json()
|
||
if resp['access_token']:
|
||
return resp['access_token']
|
||
else:
|
||
return None
|
||
|
||
|
||
def ding_get_persistent_code(code, token):
|
||
resp = requests.post(
|
||
url="%s/get_persistent_code?access_token=%s" % (DING_URL, token),
|
||
json=dict(tmp_auth_code=code),
|
||
)
|
||
resp = resp.json()
|
||
if resp['unionid']:
|
||
return resp['unionid']
|
||
else:
|
||
return None
|
||
|
||
|
||
def ding_client_connect():
|
||
client = AppKeyClient(corp_id=DING_CORP_ID, app_key=DING_APP_KEY, app_secret=DING_APP_SECRET)
|
||
return client
|
||
|
||
|
||
def ding_get_dept_user_list_detail(dept_id, offset, size):
|
||
client = ding_client_connect()
|
||
result = client.user.list(department_id=dept_id, offset=offset, size=size)
|
||
return result
|
||
|
||
|
||
def ding_get_userinfo_by_code(code):
|
||
"""
|
||
:param code: requestAuthCode接口中获取的CODE
|
||
:return:
|
||
"""
|
||
client = ding_client_connect()
|
||
resutl = client.user.getuserinfo(code)
|
||
return resutl
|
||
|
||
|
||
def ding_get_userid_by_unionid(unionid):
|
||
"""
|
||
:param unionid: 用户在当前钉钉开放平台账号范围内的唯一标识
|
||
:return:
|
||
"""
|
||
client = ding_client_connect()
|
||
resutl = client.user.get_userid_by_unionid(unionid)
|
||
if resutl['userid']:
|
||
return resutl['userid']
|
||
else:
|
||
return None
|
||
|
||
|
||
def ding_get_org_user_count():
|
||
"""
|
||
企业员工数量
|
||
only_active – 是否包含未激活钉钉的人员数量
|
||
:return:
|
||
"""
|
||
client = ding_client_connect()
|
||
resutl = client.user.get_org_user_count('only_active')
|
||
return resutl
|
||
|
||
|
||
def ding_get_userinfo_detail(user_id):
|
||
"""
|
||
user_id – 用户ID
|
||
:return:
|
||
"""
|
||
client = ding_client_connect()
|
||
resutl = client.user.get(user_id)
|
||
return resutl
|