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

Unity异常上报飞书工具

  • 测试工具:Postman
  • lua源码:https://github.com/ZeroChiLi/UnityBugFeishuReporter/blob/main/bug_report_mgr.lua

背景

  • 平常在测试人员做回归测试时,包体会有报错、界面异常等问题,通过这个工具会自动上报异常到飞书表格,方便更全面收集问题。比如自动上报报错,并截图;自动收集非中文环境下,界面存在中文的节点和文本。
  • 相比bugly,能更自由设置要收集的信息和规定格式。不单纯只收集报错。

ID

  • 应用:https://open.feishu.cn/app/cli_xxxx/baseinfo

    • App ID:cli_xxxx

    • App Secret:Qxxxxx

    • 权限:

      • 读写多维表格

      • 查看知识空间节点信息:拿到obj_token才能发到对应表格


获取tenant_access_token

  • https://open.feishu.cn/document/server-docs/authentication-management/access-token/tenant_access_token_internal

在这里插入图片描述


获取表格obj_token

  • https://open.feishu.cn/document/server-docs/docs/wiki-v2/space-node/get_node?appId=cli_axxx

  • 表格 obj_token:Njxxxxx

  • 表格 wiki token:NFxxxxx

  • 表格 table id :tbxxxx

在这里插入图片描述

在这里插入图片描述


上传图片资源

  • https://open.feishu.cn/document/server-docs/docs/drive-v1/media/upload_all

  • 表格新增行带图片时,要先上传图片。

  • parent_node 、app_token 就是上面的obj_token:Njxxxxx

    • https://sample.feishu.cn/base/Njxxxxx
  • 这里上传 G:\m71_us2\client\Assets\UI\I18N_Image\en\Common\Images\bd.png

curl --location --request POST 'https://open.feishu.cn/open-apis/drive/v1/medias/upload_all' \
--header 'Authorization: Bearer t-g1044hgIxxxxx' \
--header 'Content-Type: multipart/form-data' \
--form 'file_name="bd.png"' \
--form 'parent_type="bitable_image"' \
--form 'parent_node="Njfxxxxxxx"' \
--form 'size="4020"'
  • 上传成功拿到file_token
    在这里插入图片描述
// C# 代码实现上传图片
static public void UploadMedia()
{// 1. 定义请求 URLstring url = "https://open.feishu.cn/open-apis/drive/v1/medias/upload_all";// 2. 构建表单数据List<IMultipartFormSection> formData = new List<IMultipartFormSection>();// 添加文本字段formData.Add(new MultipartFormDataSection("file_name", "demo.png"));formData.Add(new MultipartFormDataSection("parent_type", "bitable_image"));formData.Add(new MultipartFormDataSection("parent_node", "Njfdxxxx"));// 添加文件字段(注意路径需要指向实际文件)string filePath = Path.Combine(Application.streamingAssetsPath, "demo.png");byte[] fileData = File.ReadAllBytes(filePath);formData.Add(new MultipartFormDataSection("file", fileData));formData.Add(new MultipartFormDataSection("size", fileData.Length.ToString()));// 3. 创建 UnityWebRequestUnityWebRequest request = UnityWebRequest.Post(url, formData);// 4. 设置请求头request.SetRequestHeader("Authorization", "Bearer t-g1044xxxxxx");// request.SetRequestHeader("Content-Type", "multipart/form-data; boundary=---7MA4YWxkTrZu0gW");// 5. 发送请求request.SendWebRequest();while (request.isDone == false);// 6. 处理响应if (request.isHttpError || request.isNetworkError){Debug.LogError($"上传失败: [{request.error}][{request.downloadHandler?.text}]");}else{Debug.Log("上传成功: " + request.downloadHandler.text);}
}

新增一条记录

  • https://open.feishu.cn/document/server-docs/docs/bitable-v1/app-table-record/create
curl -i -X POST 'https://open.feishu.cn/open-apis/bitable/v1/apps/Njfxxxxb/tables/tbxxxx/records' \-H 'Content-Type: application/json' \
-H 'Authorization: Bearer t-g1044hxxxxx' \
-d '{"fields": {"文本": "啊啊啊大王"}
}'

新增多条记录

https://open.feishu.cn/open-apis/bitable/v1/apps/NjfdbMsdGalzJ2sz9JTcukN1nMb/tables/tblQNkGF8LsTt8E4/records/batch_create

{ "records": [{"fields": {"问题": "您那还好abe","附件":[{"file_token": "Vl3FbVkvnowlgpxpqsAbBrtFcrd"}]}},{"fields": {"问题": "您那还好abccc"}}]
}


查询已有记录

  • https://open.feishu.cn/api-explorer/cli_a88xxx?apiName=search&from=op_doc&project=bitable&resource=app.table.record&version=v1
{ "view_id": "vewBA13Fjq","field_names": ["文本",  "版本"],"filter": {"conjunction": "and","conditions": [{"field_name": "文本","operator": "is","value": ["啊啊啊大王"]},{"field_name": "版本","operator": "is","value": ["1.3.222"]}]}
}

上报流程

在这里插入图片描述

最终效果

  • 报错表格
    在这里插入图片描述

  • 黑名单配置
    在这里插入图片描述

http://www.xdnf.cn/news/10799.html

相关文章:

  • 如何计算H5页面加载时的白屏时间
  • llama.cpp:纯 C/C++ 实现的大语言模型推理引擎详解一
  • 快速上手pytest
  • Java求职者面试:Spring、Spring Boot、Spring MVC与MyBatis技术深度解析
  • Kerberos面试内容整理-在 Linux/Windows 中的 Kerberos 实践
  • WPS word 已有多级列表序号
  • 2025年微信小程序开发:趋势、最佳实践与AI整合
  • Linux下使用nmcli连接网络
  • win11中使用grep命令
  • 若依+vue2实现模拟登录
  • JavaSec | H2数据库注入学习
  • DeepSeek 赋能智能建筑:区块链能耗管理的破局与革新
  • go get下载三方库异常
  • 【设计模式-3.7】结构型——组合模式
  • 【208】VS2022 C++ 32位整数和unsigned char数组之间互相转换
  • 升级centos 7.9内核到 5.4.x
  • 更强劲,更高效:智源研究院开源轻量级超长视频理解模型Video-XL-2
  • ONLYOFFICE 与 LocalAI:在 Ubuntu 上搭建 AI 文档编辑环境
  • 法律大语言模型(Legal LLM)技术架构
  • 实验设计与分析(第6版,Montgomery著,傅珏生译) 第9章三水平和混合水平析因设计与分式析因设计9.5节思考题9.1 R语言解题
  • Stone 3D新版本发布,添加玩家控制和生物模拟等组件,增强路径编辑功能,优化材质编辑
  • 第3篇:数据库路由模块设计与 SQL 路由策略解析
  • 【IOS】GCD学习
  • centos中的ulimit命令
  • SpringCloud 分布式锁Redisson锁的重入性 高并发 获取锁
  • 「EN 18031」访问控制机制(ACM - 1):智能路由器的安全守卫
  • SuperMap GIS基础产品FAQ集锦(20250603)
  • 人工智能在智能教育中的创新应用与未来趋势
  • 人工智能AI之机器学习基石系列 第 3 篇:选择你的“学习方法”——初探监督学习与无监督学习
  • windows安装多个版本composer