Archery icon indicating copy to clipboard operation
Archery copied to clipboard

飞书无法获取open_id

Open xiehaitang opened this issue 1 year ago • 3 comments

重现步骤

飞书无法获取open_id,现有的get_feishu_open_id有问题,需要更改如下: def get_feishu_open_id(email): url = "https://open.feishu.cn/open-apis/contact/v3/users/batch_get_id?user_id_type=open_id" payload = json.dumps({"emails": email}) headers = { 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + get_feishu_access_token() } resp = requests.request("POST", url, headers=headers, data=payload) result = [] # 确保响应状态码是200,表示请求成功 if resp.status_code == 200: resp_json = resp.json() if resp_json.get("code") == 0: # 遍历user_list中的每个user_info字典 for user_info in resp_json["data"]["user_list"]: result.append(user_info.get("user_id")) else: logger.error(f"API错误: {resp_json.get('msg')}") else: logger.error(f"请求失败,状态码:{resp.status_code}") logger.debug(f"返回结果: {result}") return result

预期外的结果

正常获取到open_id

日志文本

No response

版本

1.8.5

部署方式

Docker

是否还有其他可以辅助定位问题的信息?比如数据库版本等

No response

xiehaitang avatar Apr 24 '24 06:04 xiehaitang

  1. 可以试试 master 版本
  2. 欢迎 pr

LeoQuote avatar Apr 24 '24 06:04 LeoQuote

master 版本飞书api也是几年前的,根据我这个截图修改即可。 image def get_feishu_open_id(email): url = "https://open.feishu.cn/open-apis/contact/v3/users/batch_get_id?user_id_type=open_id" payload = json.dumps({"emails": email}) headers = { 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + get_feishu_access_token() } resp = requests.request("POST", url, headers=headers, data=payload) result = [] # 确保响应状态码是200,表示请求成功 if resp.status_code == 200: resp_json = resp.json() if resp_json.get("code") == 0: # 遍历user_list中的每个user_info字典 for user_info in resp_json["data"]["user_list"]: result.append(user_info.get("user_id")) else: logger.error(f"API错误: {resp_json.get('msg')}") else: logger.error(f"请求失败,状态码:{resp.status_code}") logger.debug(f"返回结果: {result}") return result

xiehaitang avatar Apr 24 '24 06:04 xiehaitang

麻烦提个 pr , 谢谢

LeoQuote avatar Apr 24 '24 06:04 LeoQuote