from wecom_sdk.exceptions.general import SDKException from wecom_sdk.modules.base import WecomBaseClient from wecom_sdk.utils.requests import HttpxRequest class WecomContactClient(WecomBaseClient): async def get_contact_list(self , userid: str): """ 获取联系人列表 @param userid: 用户id @return: 联系人列表 """ url = self.BASE_URL + "/externalcontact/list" params = {"access_token": await self.access_token , "userid": userid} resp = await HttpxRequest.post(url=url, params=params) if resp.errcode == 0: return resp.external_contact_list else: raise SDKException(resp.errcode, resp.errmsg) async def get_contact_detail(self , external_userid: str , cursor : None | str = None): """ 获取联系人详情 @param userid: 用户id @param external_userid: 外部联系人id @param cursor: 分页游标 @return: 联系人详情 """ url = self.BASE_URL + "/externalcontact/get" params = {"access_token": await self.access_token , "external_userid": external_userid } params.update({"cursor": cursor} if cursor else {}) resp = await HttpxRequest.post(url=url, params=params) if resp.get("errcode") == 0: return resp.get("external_contact" , {}) else: raise SDKException(resp.errcode, resp.errmsg)