update
This commit is contained in:
parent
a9a615ea74
commit
61c63678e4
@ -53,15 +53,10 @@ class WecomClient:
|
|||||||
if not token:
|
if not token:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
url = f"https://qyapi.weixin.qq.com/cgi-bin/miniprogram/jscode2session?access_token={token}"
|
url = f"https://qyapi.weixin.qq.com/cgi-bin/miniprogram/jscode2session?access_token={token}&js_code={code}&grant_type=authorization_code"
|
||||||
|
|
||||||
data = {
|
|
||||||
"js_code": code,
|
|
||||||
"grant_type": "authorization_code"
|
|
||||||
}
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
response = requests.post(url, json=data)
|
response = requests.get(url)
|
||||||
result = response.json()
|
result = response.json()
|
||||||
|
|
||||||
if result.get("errcode") == 0:
|
if result.get("errcode") == 0:
|
||||||
@ -70,61 +65,11 @@ class WecomClient:
|
|||||||
"pending_id": result.get("pending_id")
|
"pending_id": result.get("pending_id")
|
||||||
}
|
}
|
||||||
else:
|
else:
|
||||||
logging.error(f"小程序openid转换失败: {result}")
|
logging.error(f"小程序code转换失败: {result}")
|
||||||
return None
|
return None
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logging.exception(f"小程序openid转换异常: {str(e)}")
|
logging.exception(f"小程序code转换异常: {str(e)}")
|
||||||
return None
|
return None
|
||||||
|
|
||||||
async def get_user_in_group_chat(self, userid: str) -> List[str]:
|
|
||||||
"""
|
|
||||||
获取用户所在的群聊列表
|
|
||||||
|
|
||||||
Args:
|
|
||||||
userid: 企业微信用户ID
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
List[str]: 群聊ID列表
|
|
||||||
"""
|
|
||||||
token = await self.get_access_token()
|
|
||||||
if not token:
|
|
||||||
return []
|
|
||||||
|
|
||||||
url = f"https://qyapi.weixin.qq.com/cgi-bin/externalcontact/list_group_chat?access_token={token}"
|
|
||||||
|
|
||||||
# 先获取所有群聊
|
|
||||||
try:
|
|
||||||
response = requests.post(url, json={})
|
|
||||||
result = response.json()
|
|
||||||
|
|
||||||
if result.get("errcode") != 0:
|
|
||||||
logging.error(f"获取群聊列表失败: {result}")
|
|
||||||
return []
|
|
||||||
|
|
||||||
chat_ids = []
|
|
||||||
for chat in result.get("group_chat_list", []):
|
|
||||||
chat_id = chat.get("chat_id")
|
|
||||||
|
|
||||||
# 获取群聊详情
|
|
||||||
detail_url = f"https://qyapi.weixin.qq.com/cgi-bin/externalcontact/groupchat/get?access_token={token}"
|
|
||||||
detail_response = requests.post(detail_url, json={"chat_id": chat_id})
|
|
||||||
detail_result = detail_response.json()
|
|
||||||
|
|
||||||
if detail_result.get("errcode") == 0:
|
|
||||||
group_chat = detail_result.get("group_chat", {})
|
|
||||||
members = group_chat.get("member_list", [])
|
|
||||||
|
|
||||||
# 检查用户是否在群内
|
|
||||||
for member in members:
|
|
||||||
if member.get("userid") == userid:
|
|
||||||
chat_ids.append(chat_id)
|
|
||||||
break
|
|
||||||
|
|
||||||
return chat_ids
|
|
||||||
|
|
||||||
except Exception as e:
|
|
||||||
logging.exception(f"获取用户群聊异常: {str(e)}")
|
|
||||||
return []
|
|
||||||
|
|
||||||
wecom_client = WecomClient()
|
wecom_client = WecomClient()
|
||||||
Loading…
Reference in New Issue
Block a user