Next.js项目中Google Sheets可读取但无法写入数据问题求助
问题根因与修复方案
1. 权限范围配置错误
你当前申请的Google Sheets API权限是只读的,自然无法执行写入操作:
// 原错误配置,仅允许读 const target = ['https://www.googleapis.com/auth/spreadsheets.readonly'];
修改为可读写的权限范围即可:
// 替换为读写权限 const target = ['https://www.googleapis.com/auth/spreadsheets'];
2. 检查Google Sheets共享权限
你需要在目标表格的共享设置中,将process.env.GOOGLE_SHEETS_CLIENT_EMAIL对应的服务账号邮箱添加为协作者,并且授予编辑权限,否则即使权限范围修改了也会被拒绝写入。
3. 逻辑优化建议
- 你当前把写入逻辑放在
getStaticProps中,getStaticProps是服务端执行的静态生成逻辑,只会在构建时和增量再生时触发,不会响应用户的前端交互操作。如果需要用户操作后写入数据,应该单独写一个Next.js API接口,前端通过请求触发写入操作。 - 当前你写入的是空数组
[['']],测试阶段可以先填入测试内容确认写入生效,比如[['测试标题', '测试描述']]。 - 读取和写入逻辑建议拆分到两个独立的函数中,避免每次查询数据都触发不必要的写入操作。
内容的提问来源于stack exchange,提问作者Monu Patil
相关产品推荐
相关产品推荐

