背景
- 平常在测试人员做回归测试时,包体会有报错、界面异常等问题,通过这个工具会自动上报异常到飞书表格,方便更全面收集问题。比如自动上报报错,并截图;自动收集非中文环境下,界面存在中文的节点和文本。
- 相比bugly,能更自由设置要收集的信息和规定格式。不单纯只收集报错。
ID
-
应用:https://open.feishu.cn/app/cli_xxxx/baseinfo
-
App ID:
cli_xxxx
-
App Secret:
Qxxxxx
-
权限:
-
读写多维表格
-
查看知识空间节点信息:拿到obj_token才能发到对应表格
-
-
获取tenant_access_token

获取表格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
-
这里上传
G:\m71_us2\client\Assets\UI\I18N_Image\en\Common\Images\bd.png
c#
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#
// C# 代码实现上传图片
static public void UploadMedia()
{
// 1. 定义请求 URL
string 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. 创建 UnityWebRequest
UnityWebRequest 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);
}
}
新增一条记录
c#
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": {
"文本": "啊啊啊大王"
}
}'
新增多条记录
c#
{
"records": [
{
"fields": {
"问题": "您那还好abe",
"附件":[
{
"file_token": "Vl3FbVkvnowlgpxpqsAbBrtFcrd"
}
]
}
},
{
"fields": {
"问题": "您那还好abccc"
}
}
]
}
查询已有记录
c#
{
"view_id": "vewBA13Fjq",
"field_names": [
"文本", "版本"
],
"filter": {
"conjunction": "and",
"conditions": [
{
"field_name": "文本",
"operator": "is",
"value": [
"啊啊啊大王"
]
},
{
"field_name": "版本",
"operator": "is",
"value": [
"1.3.222"
]
}
]
}
}
上报流程
最终效果
-
报错表格
-
黑名单配置