部署与配置说明(店员/管理员必读)
一、申请飞书免费企业账号
打开 https://www.feishu.cn 注册「飞书团队/企业」并登录(个人免费版即可)。
二、创建自建应用并开权限
进入「飞书开放平台 https://open.feishu.cn → 开发者后台 → 创建企业自建应用」。在「权限管理」中开通:
• bitable:app(查看、编辑、管理多维表格)
• drive:drive 相关(如需)后,发布版本并「申请发布」。
三、创建多维表格与四张数据表
在飞书新建「多维表格」,再建 4 张表,列名(务必完全一致)如下:
会员表:会员编号(文本) / 姓名(文本) / 手机号(文本) / 备注(文本) / 套餐价(数字) / 总碗数(数字) / 剩余碗数(数字) / 购卡日期(文本) / 到期日期(文本) / 创建管理员(文本) / 创建时间(文本) / 已注销(复选框) / 注销人(文本) / 注销时间(文本) / 退费说明(文本)。
消费流水表:会员编号(文本) / 手机号(文本) / 时间(文本) / 类型(文本) / 变动碗数(数字) / 变动后剩余(数字) / 操作管理员(文本) / 备注(文本)。
操作日志表:时间(文本) / 操作管理员(文本) / 操作类型(文本) / 对象(文本) / 说明(文本)。
系统设置表:账号(文本) / 密码(文本)。(首启动会自动写入 admin / 888888)
四、拿到配置值
应用详情页复制「App ID」与「App Secret」;多维表格打开后,URL 中 https://.../base/【这段就是 App Token】;每张表点击「... → 更多 → 表配置」可看到表 ID(table_id)。
五、填写到本网页
打开本 HTML,找到顶部 CONFIG 配置区,依次填入 AppID / AppSecret / AppToken / 四张表 ID。
⚠️ 重要:飞书接口不允许浏览器跨域(CORS),直接填密钥到网页会被浏览器拦截。推荐把密钥放进下面的 Cloudflare Worker,再把 Worker 地址填到 API_PROXY_URL(留空则直连,但仅在你自建同源代理时可用)。
六、Cloudflare Worker 代理代码(免费,解决 CORS 且隐藏密钥)
// Cloudflare Worker(密钥仅存于此,不暴露在前端)
const FEISHU='https://open.feishu.cn';
const APP_ID='你的AppID';
const APP_SECRET='你的AppSecret';
let cache={t:null,exp:0};
async function token(){
const n=Date.now();
if(cache.t&&n<cache.exp) return cache.t;
const r=await fetch(FEISHU+'/open-apis/auth/v3/tenant_access_token/internal',{method:'POST',headers:{'content-type':'application/json'},body:JSON.stringify({app_id:APP_ID,app_secret:APP_SECRET})});
const j=await r.json(); cache={t:j.tenant_access_token,exp:n+(j.expire-300)*1000}; return cache.t;
}
export default{
async fetch(req){
const cors={'Access-Control-Allow-Origin':'*','Access-Control-Allow-Methods':'GET,POST,PUT,DELETE,OPTIONS','Access-Control-Allow-Headers':'content-type,authorization'};
if(req.method==='OPTIONS') return new Response(null,{status:204,headers:cors});
let b; try{b=await req.json();}catch(e){return new Response('bad',{status:400});}
const {method,path,body}=b;
const tk=await token();
const f=await fetch(FEISHU+path,{method,headers:{'Authorization':'Bearer '+tk,'content-type':'application/json'},body:body?JSON.stringify(body):undefined});
return new Response(await f.text(),{status:200,headers:{'content-type':'application/json',...cors}});
}
};
部署:登录 dash.cloudflare.com → Workers → 新建 → 粘贴上面代码 → 部署,把分配的 *.workers.dev 地址填到网页 API_PROXY_URL。该地址可公开,密钥不会出现在前端。