当前位置: 首页 > news >正文

【飞书_获取日程冲突的技术支持名单_使用查询日程视图接口】

飞书_获取日程冲突的技术支持名单_使用查询日程视图接口

importrequestsfromdatetimeimportdatetime#将 2026-03-05 09:00 转换成秒级时间戳defget_timestamp(time_str):dt=datetime.strptime(time_str,"%Y-%m-%d %H:%M")timestamp=int(dt.timestamp())returntimestampdefget_tenant_access_token():"""获取 tenant_access_token"""url="https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal"headers={"Content-Type":"application/json; charset=utf-8"}data={"app_id":APP_ID,"app_secret":APP_SECRET}response=requests.post(url,headers=headers,json=data)result=response.json()ifresult.get("code")==0:returnresult.get("tenant_access_token")else:raiseException(f"获取token失败:{result.get('msg')}")defquery_calendar_event_views(calendar_id,start_time,end_time):""" 查询指定日历下的日程视图(实例视图) """# 构建请求URLbase_url=f"https://open.feishu.cn/open-apis/calendar/v4/calendars/{calendar_id}/events/instance_view"# 设置请求头headers={"Authorization":f"Bearer{access_token}","Content-Type":"application/json; charset=utf-8"}# 设置查询参数params={"start_time":start_time,"end_time":end_time,"user_id_type":"user_id"}response=requests.get(base_url,headers=headers,params=params)result=response.json()ifresult.get("code")==0:# 提取指定字段,构建新的字典列表new_event_list=[]foreventinresult.get("data",{}).get("items",[]):# 构建单个事件的新字典new_event={'summary':event['summary'],'feishu_start_time_time_stamp':event['start_time']['timestamp'],# 保留原始的开始时间字典(包含timestamp和timezone)'feishu_end_time_time_stamp':event['end_time']['timestamp'],# 保留原始的结束时间字典'status':event['status'],'self_rsvp_status':event['self_rsvp_status'],'free_busy_status':event['free_busy_status']}new_event_list.append(new_event)returnnew_event_listelse:raiseException(f"查询失败:{result.get('msg')}")defget_schedule_conflicts(calendar_id_info_list,requested_start_time_str,requested_end_time_str):requested_start_time_str_timestamp=get_timestamp(requested_start_time_str)requested_end_time_str_timestamp=get_timestamp(requested_end_time_str)schedule_conflicts_rpa_coach_info_list=[]forcalendar_id_infoincalendar_id_info_list:feishu_event_list=query_calendar_event_views(calendar_id_info["calendar_id"],requested_start_time_str_timestamp,requested_end_time_str_timestamp)schedule_conflicts=[]iflen(feishu_event_list)>0:foreventinfeishu_event_list:#判断feishu_start_time_time_stamp是否在晚上18点之后,只判断当天的时间戳feishu_start_time_time_stamp_datetime=datetime.fromtimestamp(int(event['feishu_start_time_time_stamp']))isStartTimeAfter18=Falseiffeishu_start_time_time_stamp_datetime.hour>=18:print("日程开始时间在晚上18点之后")isStartTimeAfter18=True#排除掉晚上18点之后的日程,组织者取消的日程,自己设置为空闲的日程,以及自己已拒绝的日程ifisStartTimeAfter18orevent['status']=='cancelled'orevent['free_busy_status']=='free'orevent['self_rsvp_status']=='decline':continueelse:schedule_conflicts.append(event)iflen(schedule_conflicts)>0:#将时间戳转换成日期时间字符串,并且将feishu_end_time_time_stamp等字段删除foreventinschedule_conflicts:feishu_start_time_time_stamp_datetime=datetime.fromtimestamp(int(event['feishu_start_time_time_stamp']))feishu_start_time_str=feishu_start_time_time_stamp_datetime.strftime("%Y-%m-%d %H:%M")feishu_end_time_time_stamp_datetime=datetime.fromtimestamp(int(event['feishu_end_time_time_stamp']))feishu_end_time_str=feishu_end_time_time_stamp_datetime.strftime("%Y-%m-%d %H:%M")# 删除原始时间戳字段event.pop('feishu_start_time_time_stamp',None)event.pop('feishu_end_time_time_stamp',None)# 添加转换后的时间字符串字段event['feishu_start_time_str']=feishu_start_time_str event['feishu_end_time_str']=feishu_end_time_str schedule_conflicts_rpa_coach_info_list.append({"rpa_coach":calendar_id_info["rpa_coach"],"schedule_conflicts":schedule_conflicts})returnschedule_conflicts_rpa_coach_info_list# 飞书应用配置APP_ID="XXX"APP_SECRET="XXX"calendar_id_info_list=[{"rpa_coach":"小曼","calendar_id":"XXX"}]requested_start_time_str="2026-02-27 09:10"# 客户成功填的requested_end_time_str="2026-02-27 18:20"# 客户成功填的# 获取访问凭证access_token=get_tenant_access_token()print(access_token)# 查询日程冲突schedule_conflicts_rpa_coach_info_list=get_schedule_conflicts(calendar_id_info_list,requested_start_time_str,requested_end_time_str)print(schedule_conflicts_rpa_coach_info_list)
http://www.jsqmd.com/news/424592/

相关文章:

  • YOLOv13涨点改进| TGRS 2026 |独家创新首发、特征融合改进篇| 引入SCFM 语义引导跨注意力融合模块,使高层语义信息与低层细节信息更加协调,适合小目标检测、红外小目标检测、小目标分割
  • 2026年河南新乡RGV平板车年度排名,配套服务完善的厂家推荐 - 工业品网
  • 2026年洁净板老牌厂家推荐,尚泰净化板性价比高值得拥有 - mypinpai
  • 《创业之路》-878-华为管理哲学的核心:“中学为体,西学为用”。“形”是西方的(流程、制度、架构),“神”是东方的(价值观、动力机制、组织氛围)
  • 2026年热门的烧烤取暖原木炭/工业木炭源头高口碑品牌推荐 - 行业平台推荐
  • YOLOv13涨点改进| TGRS 2026 | 全网创新首发、Conv卷积改进篇 | 引入MPM多尺度感知模块,利用多尺度卷积核组合捕捉多尺度信息,结合坐标注意力强化目标定位,助力小目标检测高效涨点
  • 分析新疆乌鲁木齐民宿设计服务,哪家口碑好又费用合理? - 工业品牌热点
  • AI 工具导航站静态网页源码分享
  • 2026年靠谱的全自动裁剪机/视觉定位裁剪机实力工厂怎么选 - 行业平台推荐
  • 2026年知名的滁州GEO推广/滁州GEO建站高评价推荐服务平台 - 行业平台推荐
  • 选护栏工厂看啥,山东森尔金属的服务和产品质量好用不? - 工业设备
  • JsBarcode生成一维码
  • 2026年惠州性价比高的进销存软件靠谱代理机构排名,费用大揭秘 - myqiye
  • **Vulkan实战进阶:从零搭建高效图形渲染管线的底层逻辑与代码实践**在现代游戏
  • 分析2026年上海别墅室内设计施工,靠谱品牌排名出炉 - 工业推荐榜
  • 科研党收藏!普遍认可的降AI率平台 —— 千笔·降AIGC助手
  • 2026年盘点蚌埠等地新能源职业学校,揭秘口碑好的品牌 - 工业品牌热点
  • 核心基础函数MatMultiply
  • 把坑都踩完了,AI论文写作软件 千笔 VS 知文AI,专科生专属更实用!
  • 2026年2月室外无人机机库企业推荐:靠谱的都在这排行里,室外无人机机库/无人机自动机库,无人机机库供应厂家哪家强 - 品牌推荐师
  • 2026年热门酒窖定制公司排名,推荐酒窖定制费用怎么算 - 工业推荐榜
  • 2026年耐热纤维自动送料裁断机/液压裁断机厂家选择指南 - 行业平台推荐
  • CF2205D题解
  • 2026年知名的椰壳炭/马来西亚活性椰壳炭实力厂家如何选 - 行业平台推荐
  • 实测才敢推!降AIGC工具 千笔·降AI率助手 VS 文途AI,研究生专属降重神器
  • 每年 30% 银座卡闲置?可可收实测:安全 + 快速 + 高折扣 - 可可收
  • 2026年性价比高的日式大单槽/洗菜盆大单槽厂家综合实力对比 - 行业平台推荐
  • 2026金华义乌AI搜索公司TOP4技术评测:品牌智能化增长优选指南 - 呼呼拉呼
  • 深度测评AI论文软件,千笔AI VS speedai,本科生写作神器!
  • WiseJ Framework 4.0.8