佛山市建设局网站怎么注册亚马逊跨境电商

张小明 2026/1/7 5:47:28
佛山市建设局网站,怎么注册亚马逊跨境电商,苏宁易购网页布局设计,做质量计量的网站有哪些一、背景 到了年底#xff0c;公司要对飞书使用情况进行总结、评比#xff0c;需要导出飞书使用的数据#xff0c;但是飞书管理员在后台只能导出最近1个月的数据。找了官方#xff0c;说无法导出全年#xff0c;他们紧急上线了1个年终总结的API。但是#xff0c;我们公司…一、背景到了年底公司要对飞书使用情况进行总结、评比需要导出飞书使用的数据但是飞书管理员在后台只能导出最近1个月的数据。找了官方说无法导出全年他们紧急上线了1个年终总结的API。但是我们公司跟他们发布的关注纬度不一样最后导出数据的任务就掉我头上了。二、思路通过查阅官方文档《获取用户维度的用户活跃和功能使用数据》三、过程一在开发者后台创建应用打开创建应用并给予对应的权限。创建过程让初学者有点懵我选的机器人。二拿到应用凭证三在线测试API打开之前的《获取用户维度的用户活跃和功能使用数据》 点击右下角的“前往API调试台”要先注意“切换应用”和“权限配置”。麻烦的是权限设置需要应用发布但也没事。测试成功的样子四复制示例代码五java工程创建1.pom.xml我为什么知道依赖什么呢先看了javaSDK指南。project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd modelVersion4.0.0/modelVersion parent groupIdpotato/groupId artifactIdfeishu-integration/artifactId version0.0.1-SNAPSHOT/version /parent artifactIdfeishu-integration-members/artifactId dependencies !-- 飞书Java SDK核心依赖 -- dependency groupIdcom.larksuite.oapi/groupId artifactIdoapi-sdk/artifactId version2.1.0/version !-- 推荐使用最新稳定版可在Maven中央仓库查询 -- /dependency !-- 可选日志依赖便于调试 -- dependency groupIdorg.slf4j/groupId artifactIdslf4j-api/artifactId version1.7.36/version /dependency dependency groupIdorg.slf4j/groupId artifactIdslf4j-simple/artifactId version1.7.36/version scopetest/scope /dependency /dependencies /project2.具体的拉取代码我的复制了代码后让豆包完善我再修改的。我的核心是尽量少使用依赖导出csv文件每天请求导出1次每1万行追加写入1次。注意API对时间要求是跨度不超过31天每页导出不超过60条不同API要求不同。package cn.potato.feishu; import java.io.BufferedWriter; import java.io.FileOutputStream; import java.io.OutputStreamWriter; import java.nio.charset.StandardCharsets; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import com.lark.oapi.Client; import com.lark.oapi.service.admin.v1.model.AdminUserStat; import com.lark.oapi.service.admin.v1.model.ListAdminUserStatReq; import com.lark.oapi.service.admin.v1.model.ListAdminUserStatResp; import com.lark.oapi.service.admin.v1.model.ListAdminUserStatRespBody; public class FeishuEmployeeFetcher { // 替换为你的应用凭证 private static final String APP_ID 你的APP_ID; private static final String APP_SECRET 你的APP_SECRET; // 分批阈值每1万条数据写入一次 private static final int BATCH_SIZE 10000; // 标记是否是第一次写入用于判断是否需要写入表头 private static boolean isFirstWrite true; // 日期格式化器适配飞书API日期格式要求 private static final DateTimeFormatter DATE_FORMATTER DateTimeFormatter.ofPattern(yyyy-MM-dd); // 全局查询范围2025-01-01 至 2025-12-20 private static final LocalDate GLOBAL_START_DATE LocalDate.of(2025, 1, 1); private static final LocalDate GLOBAL_END_DATE LocalDate.of(2025, 12, 20); // 初始化飞书Client private static Client initFeishuClient() { // 创建Client自动处理token缓存与刷新 Client client Client.newBuilder(APP_ID, APP_SECRET).logReqAtDebug(true)// 开启日志便于调试 .build(); return client; } /** * 按天分段获取所有数据核心入口方法 */ public static void getAllDataByDay() throws Exception { Client client initFeishuClient(); LocalDate currentDate GLOBAL_START_DATE; // 循环遍历每一天直到超过全局结束日期 while (!currentDate.isAfter(GLOBAL_END_DATE)) { System.out.println(String.format()); System.out.println(String.format(开始查询【%s】的员工数据, currentDate.format(DATE_FORMATTER))); // 获取当天的数据开始日期和结束日期都是当前天 fetchDataBySingleDay(client, currentDate); // 日期递增1天处理下一天 currentDate currentDate.plusDays(1); } System.out.println(String.format()); System.out.println(所有日期数据查询并写入完毕); } /** * 根据指定日期获取当天数据并分批写入CSV * param client 飞书Client * param targetDate 目标日期当天 */ private static void fetchDataBySingleDay(Client client, LocalDate targetDate) throws Exception { // 临时缓存批次数据 ListAdminUserStat batchAusList new ArrayListAdminUserStat(); String pageToken 0; boolean hasMore true; String dateStr targetDate.format(DATE_FORMATTER); while (hasMore) { System.out.println(String.format( 分页查询中pageToken:%s, pageToken)); // 创建请求对象开始日期和结束日期均为当天满足API时间范围要求 ListAdminUserStatReq req ListAdminUserStatReq.newBuilder() .startDate(dateStr) .endDate(dateStr) .pageToken(pageToken) .pageSize(50) .build(); // 发起请求 ListAdminUserStatResp resp client.admin().adminUserStat().list(req); // 处理服务端错误 if (!resp.success()) { System.out.println(String.format( 【%s】数据查询失败code:%s,msg:%s,reqId:%s, dateStr, resp.getCode(), resp.getMsg(), resp.getRequestId())); return; } ListAdminUserStatRespBody lausrb resp.getData(); AdminUserStat[] aus lausrb.getItems(); if (aus ! null aus.length 0) { batchAusList.addAll(Arrays.asList(aus)); System.out.println(String.format( 本次分页获取到%s条数据当前批次累计%s条, aus.length, batchAusList.size())); } else { System.out.println( 本次分页无数据); } // 判断是否达到批次阈值达到则写入文件并清空临时列表 if (batchAusList.size() BATCH_SIZE) { appendToCsvFile(batchAusList, d:/1.csv); batchAusList.clear(); // 清空临时列表继续缓存后续数据 System.out.println( 已写入1万条数据继续分页查询...); } // 更新分页信息 pageToken lausrb.getPageToken(); hasMore lausrb.getHasMore(); } // 处理当天最后一批不足1万条的数据 if (!batchAusList.isEmpty()) { appendToCsvFile(batchAusList, d:/1.csv); batchAusList.clear(); System.out.println(String.format( 【%s】最后一批数据写入完成, dateStr)); } else { System.out.println(String.format( 【%s】无员工数据, dateStr)); } } /** * 追加写入CSV文件支持分批写入自动判断是否写入表头 * param ausList 批次数据列表 * param csvFilePath CSV文件路径 */ public static void appendToCsvFile(ListAdminUserStat ausList, String csvFilePath) { // 1. 定义CSV表头 String[] headers { 日期, User ID, 姓名, 部门, 发送消息数, 创建文件数, 创建日程数, 会议时长分钟, 会议数, 创建任务数, 总发件量, 总收件量, 对外发件数, 对内发件数, 来自外部收件数, 来自内部收件数 }; // 2. 以追加模式打开文件FileOutputStream第二个参数为true表示追加不覆盖原有数据 try (BufferedWriter writer new BufferedWriter( new OutputStreamWriter(new FileOutputStream(csvFilePath, true), StandardCharsets.UTF_8))) { // 第一次写入时先写入表头后续日期均为追加数据不重复写表头 if (isFirstWrite) { writer.write(String.join(,, headers)); writer.newLine(); isFirstWrite false; // 写入后标记为非首次 } // 遍历批次数据追加写入每行内容 if (ausList ! null !ausList.isEmpty()) { for (AdminUserStat aus : ausList) { // 处理字段空值避免空指针异常转义双引号防止破坏CSV格式 String date aus.getDate() null ? : aus.getDate().replace(\, \\); String userId aus.getUserId() null ? : aus.getUserId().replace(\, \\); String userName aus.getUserName() null ? : aus.getUserName().replace(\, \\); String departmentPath aus.getDepartmentPath() null ? : aus.getDepartmentPath().replace(\, \\); Long sendMessengerNum aus.getSendMessengerNum() null ? 0L : aus.getSendMessengerNum(); Long createDocsNum aus.getCreateDocsNum() null ? 0L : aus.getCreateDocsNum(); Long createCalNum aus.getCreateCalNum() null ? 0L : aus.getCreateCalNum(); Long vcDuration aus.getVcDuration() null ? 0L : aus.getVcDuration(); Long createTaskNum aus.getCreateTaskNum() null ? 0L : aus.getCreateTaskNum(); Long vcNum aus.getVcNum() null ? 0L : aus.getVcNum(); Long emailSendCount aus.getEmailSendCount() null ? 0L : Long.parseLong(aus.getEmailSendCount()); Long emailReceiveCount aus.getEmailReceiveCount() null ? 0L : Long.parseLong(aus.getEmailReceiveCount()); Long emailSendExtCount aus.getEmailSendExtCount() null ? 0L : Long.parseLong(aus.getEmailSendExtCount()); Long emailReceiveExtCount aus.getEmailReceiveExtCount() null ? 0L : Long.parseLong(aus.getEmailReceiveExtCount()); Long emailSendInCount aus.getEmailSendInCount() null ? 0L : Long.parseLong(aus.getEmailSendInCount()); Long emailReceiveInCount aus.getEmailReceiveInCount() null ? 0L : Long.parseLong(aus.getEmailReceiveInCount()); // 拼接字段值用引号包裹避免逗号/换行符破坏CSV格式 String line String.format( \%s\,\%s\,\%s\,\%s\,\%s\,\%s\,\%s\,\%s\,\%s\,\%s\,\%s\,\%s\,\%s\,\%s\,\%s\,\%s\, date, userId, userName, departmentPath, sendMessengerNum, createDocsNum, createCalNum, vcDuration, createTaskNum, vcNum, emailSendCount, emailReceiveCount, emailSendExtCount, emailReceiveExtCount, emailSendInCount, emailReceiveInCount); writer.write(line); writer.newLine(); } } System.out.println(String.format( 成功追加%s条数据到CSV文件%s, ausList.size(), csvFilePath)); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(追加写入CSV文件失败 e.getMessage()); } } // 主方法测试 public static void main(String[] args) throws Exception { getAllDataByDay(); } }四、感受1.总体来说飞书的API比较完。2.代码注释给力开发者友好。3.示例代码与依赖文档衔接友好示例代码中有文档链接4.在线API测试没有问题先下就可以运行。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

磐石网站建设万网建网站流程

第一章:Open-AutoGLM智能体部署的行业背景与挑战随着大模型技术在自然语言处理、自动化决策和智能推理等领域的广泛应用,企业对具备自主任务执行能力的AI智能体需求日益增长。Open-AutoGLM作为一类面向开放域任务的生成式智能体,融合了思维链…

张小明 2026/1/7 3:50:55 网站建设

网站怎么上传到空间中国城市建设网网站

我们学习网络安全,很多学习路线都有提到多逛论坛,阅读他人的技术分析帖,学习其挖洞思路和技巧。但是往往对于初学者来说,不知道去哪里寻找技术分析帖,也不知道网络安全有哪些相关论坛或网站,所以在这里给大…

张小明 2026/1/7 3:50:57 网站建设

怎样建设小游戏网站新建定制网站费用

性能测试:利用工具模拟大量用户操作,验证系统承受的负载情况。 性能测试的目的:找到潜在的性能问题或瓶颈,分析并解决;找出性能变化趋势,为后续扩展系统提供参考。 测试监控:基准测试、配置测…

张小明 2026/1/7 3:50:58 网站建设

网站建设期间注意事项公司注册流程2020

云顶之弈智能挂机全攻略:3步实现自动经验收割 【免费下载链接】LOL-Yun-Ding-Zhi-Yi 英雄联盟 云顶之弈 全自动挂机刷经验程序 外挂 脚本 ,下载慢可以到https://gitee.com/stringify/LOL-Yun-Ding-Zhi-Yi 项目地址: https://gitcode.com/gh_mirrors/lo/LOL-Yun-Di…

张小明 2026/1/7 3:50:59 网站建设

中国工商网官方网站专业网站建设必要性

SlopeCraft终极指南:快速创建Minecraft立体地图画的艺术 【免费下载链接】SlopeCraft Map Pixel Art Generator for Minecraft 项目地址: https://gitcode.com/gh_mirrors/sl/SlopeCraft 想要在Minecraft中打造令人惊叹的立体地图画吗?SlopeCraft…

张小明 2026/1/7 3:50:57 网站建设

黄山网站建设策划网站外链建设实例

Ring-mini-linear-2.0:混合架构高效能模型 【免费下载链接】Ring-mini-linear-2.0 项目地址: https://ai.gitcode.com/hf_mirrors/inclusionAI/Ring-mini-linear-2.0 大模型领域迎来效率革命新突破——inclusionAI正式开源Ring-mini-linear-2.0,…

张小明 2026/1/7 3:50:58 网站建设