中国大陆Docker容器时区设置指南
好的!我们先从最简单的 Google Sheets 开始配置。这是整个工作流的数据源和触发器。
📋 配置 Google Sheets 的步骤:
步骤一:准备 Google Sheets 表格
- 创建新的Google Sheets 或使用现有表格
- 确保有以下列:
Product Link- Amazon产品链接Facebook Upload- 上传状态(留空,工作流会自动更新)
- 示例格式:
1
2
3
4| Product Link | Facebook Upload |
|---------------------------------------|-----------------|
| https://www.amazon.com/dp/B0XXXXXXX | |
| https://www.amazon.com/dp/B0YYYYYYY | |
步骤二:在 n8n 中配置 Google Sheets 触发器
- 在工作流中找到 “Google Sheets Trigger” 节点
- 点击节点进行配置
- 选择或创建 Google Sheets 凭据:
- 点击”更改身份验证”
- 选择”OAuth2”
- 完成Google认证(需要登录您的Google账号)
步骤三:配置触发器设置
1 | # 节点配置示例: |
🎯 详细操作截图:
- 打开 Google Sheets Trigger 节点
- 点击”身份验证”字段
- 选择”OAuth2” → “Connect Account”
- 完成Google登录授权
- 选择您的工作表和范围
🔧 配置示例:
1 | - **电子表格**: 选择您的Google Sheets文件 |
⚠️ 重要提示:
- 确保列名准确:必须是”Product Link”和”Facebook Upload”
- 权限设置:Google Sheets需要设置为”任何知道链接的人都可以编辑”
- 触发器测试:添加一个测试链接,查看是否能触发工作流
💡 测试方法:
- 在Google Sheets中添加一个Amazon产品链接
- 保存表格
- 查看n8n工作流是否自动触发
- 观察”Facebook Upload”列是否被更新
🚀 下一步建议:
完成Google Sheets配置后,接下来配置:
- RapidAPI(获取产品数据)
- OpenRouter(AI文案生成)
- Gemini(图片生成)
- Facebook(自动发布)
现在请打开您的Google Sheets,确保表格格式正确,然后开始在n8n中配置Google Sheets Trigger节点吧!需要我详细说明哪个具体步骤吗?
时间: 2025-08-22T00:11:05
👤 用户
下面的
docker run -it –rm
–name n8n
-p 5678:5678
-e GENERIC_TIMEZONE=”
-e TZ=”
时间: 2025-08-21T18:20:37
🤖 DeepSeek (deepseek-chat)
您在中国大陆,应该使用 Asia/Shanghai 时区。
所以您的命令应该是:
1 | docker run -it --rm \ |
补充说明:
Asia/Shanghai是中国大陆的标准时区标识符(UTC+8)- 同时设置
GENERIC_TIMEZONE和TZ环境变量是为了确保 n8n 内部和 Docker 容器系统都使用正确的时区 - 这样设置后,n8n 中的定时任务、工作流执行时间等都会按照北京时间显示和运行
如果您在其他中文地区:
- 台湾:Asia/Taipei
- 香港:Asia/Hong_Kong
- 澳门:Asia/Macau
但在中国大陆,使用 Asia/Shanghai 是正确的。
时间: 2025-08-21T18:20:37
👤 用户
-e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
-e N8N_RUNNERS_ENABLED=true \
这两行命令啥意思,有什么作用?
时间: 2025-08-21T21:04:25
🤖 DeepSeek (deepseek-chat)
这两行是设置 n8n 的环境变量,分别控制不同的安全性和功能选项:
1. N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
作用:增强安全性,强制检查配置文件权限
详细解释:
- n8n 会将配置信息保存到
~/.n8n目录下的文件中 - 此设置确保这些配置文件具有严格的权限限制(通常为 600)
- 防止未授权用户读取或修改敏感的配置数据
- 在生产环境中特别重要,可以避免配置信息泄露
2. N8N_RUNNERS_ENABLED=true
作用:启用独立执行器(runners),提升性能和可扩展性
详细解释:
- n8n 默认在工作流主进程中执行任务
- 启用 runners 后,工作流执行会被分配到独立的执行器进程中
- 主要好处:
- 性能提升:避免阻塞主进程
- 更好的资源管理:单独监控和管理执行资源
- 可扩展性:为将来分布式部署做准备
- 稳定性:执行器崩溃不会影响主服务
完整命令示例:
1 | docker run -it --rm \ |
建议:在生产环境中推荐同时启用这两个选项,既保障安全性又提升性能。
时间: 2025-08-21T21:04:25
👤 用户
start –tunnel
有什么作用?
时间: 2025-08-21T21:05:32
🤖 DeepSeek (deepseek-chat)
start --tunnel 是 n8n 的一个启动命令选项,它有两个主要作用:
主要功能
1. 创建安全隧道(主要用途)
- 为您的本地 n8n 实例创建一个公共可访问的 URL
- 即使您的服务器在 NAT 后面或没有公网 IP,也能被外部服务访问
- 类似于 ngrok 或 frp 的内网穿透功能
2. 启用 Webhook 接收
- 让外部服务(如 GitHub、Slack、微信等)能够回调您的 n8n
- 无需配置复杂的网络转发或防火墙规则
工作原理
1 | 您的本地 n8n → n8n 的隧道服务器 → 公共互联网 |
n8n 会建立一个到 tunnel.n8n.io 的安全连接,生成一个类似这样的 URL:https://abc12345def.tunnel.n8n.io
使用场景
- 开发和测试:快速测试 webhook 工作流,无需部署到服务器
- 临时演示:与他人共享您的 n8n 实例
- 无公网 IP:在家庭网络或公司内网中运行 n8n
- 避免配置:跳过端口转发和域名解析的复杂设置
注意事项
⚠️ 安全性:隧道 URL 是公开的,任何人获得链接都能访问
⚠️ 性能:流量经过中转服务器,可能会有延迟
⚠️ 稳定性:不适合生产环境,仅用于开发和测试
替代方案
对于生产环境,建议:
- 使用域名和 HTTPS
- 配置反向代理(nginx、Caddy)
- 设置正确的防火墙规则
- 使用专业的隧道服务(ngrok、cloudflare tunnel)
总结:start --tunnel 是一个方便的开发工具,让您快速暴露本地 n8n 服务到公网,但不适合生产使用。
时间: 2025-08-21T21:05:32
👤 用户
docker run -it –rm
什么意思?
时间: 2025-08-21T21:07:09
🤖 DeepSeek (deepseek-chat)
这是一个非常常用的 Docker 命令组合,让我为您分解每个参数的含义:
参数解析
-i 或 --interactive
- 保持标准输入 (STDIN) 打开
- 允许您与容器进行交互(比如输入命令)
-t 或 --tty
- 分配一个伪终端 (pseudo-TTY)
- 让容器像是一个真实的终端,支持格式化和颜色显示
--rm
- 容器退出后自动删除
- 容器停止运行时,自动清理容器文件系统
- 避免积累大量停止的容器
组合效果 -it --rm
1 | docker run -it --rm nginx |
这句话的意思是:
“以交互式终端模式运行一个临时容器,容器退出后自动删除”
典型使用场景
测试和调试:快速启动容器进行测试,退出后自动清理
1
docker run -it --rm ubuntu bash
临时任务:运行一次性命令
1
docker run -it --rm alpine ping google.com
查看镜像内容:检查镜像中的文件结构
1
docker run -it --rm nginx ls /etc/nginx
对比说明
有 --rm(推荐用于测试):
1 | docker run -it --rm ubuntu |
无 --rm:
1 | docker run -it ubuntu |
完整示例
1 | # 运行一个临时的 Ubuntu 容器,进行交互式操作 |
总结:这是一个非常实用的开发调试组合,让您能够快速测试容器而不用担心清理问题。
时间: 2025-08-21T21:07:09
👤 用户
生成环境下–rm看样子是不需要的
时间: 2025-08-21T21:09:01
🤖 DeepSeek (deepseek-chat)
您说得完全正确!在生产环境中不应该使用 --rm 选项。
生产环境为何不用 --rm
🚫 不要这样(生产环境):
1 | docker run -d --rm --name my-app -p 8080:80 my-app:prod |
✅ 应该这样(生产环境):
1 | docker run -d --name my-app -p 8080:80 my-app:prod |
生产环境避免使用 --rm 的原因
1. 日志和诊断需要
- 容器停止后,日志和文件系统状态需要保留用于故障排查
--rm会立即删除所有诊断信息
2. 数据持久化
- 生产环境通常需要数据卷持久化,
--rm会破坏这种机制 - 重要的临时文件也可能被误删
3. 稳定性监控
- 需要检查停止容器的退出状态码
- 监控系统需要访问已停止容器的元数据
4. 重启策略
- 生产环境常用
--restart=always等重启策略 --rm与自动重启策略冲突
5. 审计和合规
- 需要保留容器运行记录用于安全审计
- 法规要求可能强制保留运行日志
生产环境的正确做法
定期清理策略
1 | # 手动清理已停止的容器(按需执行) |
完整的生产环境示例
1 | docker run -d \ |
何时使用 --rm
仅在以下场景使用:
- 🧪 本地开发和测试
- 🔍 快速调试和验证
- 📖 学习 Docker 命令
- ⚡ 运行一次性临时任务
总结
| 场景 | 建议 | 理由 |
|---|---|---|
| 生产环境 | ❌ 不要用 --rm |
需要持久化、监控、诊断 |
| 开发测试 | ✅ 推荐用 --rm |
保持环境干净,避免积累 |
| CI/CD | ⚡ 按需使用 | 流水线结束后自动清理 |
您的判断是正确的,生产环境应该避免使用 --rm 来确保系统的可靠性和可维护性。
时间: 2025-08-21T21:09:01
👤 用户
我部署在飞牛上,似乎可以这样写:
docker run -d
–name n8n
-p 5678:5678
-e GENERIC_TIMEZONE=”Asia/Shanghai”
-e TZ=”Asia/Shanghai”
-e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
-e N8N_RUNNERS_ENABLED=true
n8nio/n8n
start –tunnel
时间: 2025-08-21T21:14:51
🤖 DeepSeek (deepseek-chat)
您这个写法有几个问题需要修正。start --tunnel 不能直接写在 docker run 命令的末尾。
❌ 错误写法:
1 | docker run -d \ |
✅ 正确写法:
方案一:使用命令行参数(推荐)
1 | docker run -d \ |
方案二:使用环境变量
1 | docker run -d \ |
重要提醒
⚠️ 生产环境不建议使用 --tunnel:
1 | # 生产环境应该这样(去掉 --tunnel): |
为什么生产环境不用 --tunnel:
- 安全性:隧道是公开的,任何人都可以访问
- 性能:流量经过中转服务器,速度慢
- 稳定性:依赖 n8n 的隧道服务,可能不稳定
- 不适合长期运行:主要用于开发和测试
飞牛NAS上的完整部署建议
1 | # 创建数据卷(持久化数据) |
如果需要隧道功能(仅用于测试)
1 | # 临时测试使用(退出后会自动删除) |
总结:根据您的使用场景选择合适的方式。如果是长期运行,建议不用 --tunnel;如果只是临时测试,可以用方案一。
时间: 2025-08-21T21:14:51
👤 用户
那我部署在本地的n8n想作为生产环境使用,把一些工作流取得的数据保存到notion或者google sheets,似乎不需要开启tunnel?
时间: 2025-08-21T21:18:10
🤖 DeepSeek (deepseek-chat)
您理解得完全正确!在生产环境使用本地 n8n 时,确实不需要开启 tunnel。
✅ 您的理解是正确的
不需要 tunnel 的原因:
- 出站连接:n8n → Notion/Google Sheets 是主动出站连接
- 不需要入站:Notion 和 Google Sheets 不需要回调您的 n8n
- 数据推送:n8n 主动将数据推送到外部服务
📊 您的工作流模式:
1 | 本地 n8n → (主动请求) → Notion API/Google Sheets API |
不需要:
1 | Notion/Google Sheets → (回调) → 您的 n8n |
🚀 推荐的生产环境配置:
1 | docker run -d \ |
🔐 安全建议:
1 | # 还可以增加这些安全设置 |
🌐 访问方式:
由于不用 tunnel,您可以通过以下方式访问:
- 本地访问:
http://localhost:5678 - 局域网访问:
http://[飞牛NAS的IP]:5678 - 如需外网访问:需要在路由器设置端口转发或使用反向代理
⚠️ 什么时候才需要 tunnel?
只有当您需要接收webhook回调时才需要:
- GitHub webhooks
- Slack 命令
- 微信回调
- 其他需要外部服务主动联系您 n8n 的场景
总结:对于您的使用场景(数据推送到 Notion/Google Sheets),完全不需要开启 tunnel,直接用推荐的生产配置即可!
时间: 2025-08-21T21:18:10
👤 用户
-e NODE_ENV=production
什么意思?
时间: 2025-08-21T21:19:36
🤖 DeepSeek (deepseek-chat)
-e NODE_ENV=production 是一个非常重要的环境变量设置,它告诉 Node.js 应用程序(n8n 是基于 Node.js 的)当前运行在生产环境。
🎯 主要作用
1. 性能优化
1 | // 开发环境:详细的错误堆栈 |
2. 缓存机制
1 | // 开发环境:文件实时重新加载 |
3. 日志级别
1 | // 开发环境:详细调试日志 |
4. 安全增强
1 | // 开发环境:宽松的安全设置 |
📊 对比不同环境
| 特性 | NODE_ENV=development |
NODE_ENV=production |
|---|---|---|
| 错误显示 | 详细堆栈跟踪 | 简化错误信息 |
| 性能 | 调试模式,较慢 | 优化模式,更快 |
| 日志 | 详细调试日志 | 只记录重要日志 |
| 缓存 | 实时重载 | 启用缓存 |
| 安全 | 宽松设置 | 严格策略 |
🚀 生产环境完整示例
1 | docker run -d \ |
🔧 其他相关的环境变量
1 | # 生产环境推荐组合 |
⚠️ 注意事项
- 必须设置:生产环境一定要设置
NODE_ENV=production - 性能提升:可能带来 2-3 倍的性能提升
- 内存使用:更高效的内存管理
- 错误处理:用户看不到敏感的错误信息
🎪 开发环境设置
如果是测试开发,可以这样设置:
1 | -e NODE_ENV=development \ # 开发模式,详细日志 |
总结:NODE_ENV=production 是生产环境部署的必备设置,它能显著提升性能、增强安全性,并提供更适合生产环境的运行模式。
时间: 2025-08-21T21:19:36
👤 用户
docker run -d
–name n8n
–restart=unless-stopped
-p 5678:5678
-v /vol1/1000/n8n/n8n_data:/home/node/.n8n
-e TZ=”Asia/Shanghai”
-e GENERIC_TIMEZONE=”Asia/Shanghai”
-e NODE_ENV=production
-e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
-e N8N_RUNNERS_ENABLED=true
-e N8N_DIAGNOSTICS_ENABLED=false \ # 生产环境可关闭诊断
n8nio/n8n:latest
时间: 2025-08-21T21:22:27
🤖 DeepSeek (deepseek-chat)
您的 Docker 命令写得很好!不过有一个小问题需要修正:
❌ 问题:注释符号错误
在 Docker 命令中,不能使用 # 注释,因为这会破坏命令的连续性。
✅ 修正后的命令:
1 | docker run -d \ |
🎯 您的配置优点:
- ✅ 持久化存储:正确映射到
/vol1/1000/n8n/n8n_data - ✅ 自动重启:
--restart=unless-stopped确保服务稳定 - ✅ 生产环境设置:正确的时区和生产模式
- ✅ 安全设置:文件权限检查和诊断关闭
- ✅ 性能优化:启用 runners 提升性能
🔧 如果需要注释,可以这样写:
1 | # 生产环境 n8n 部署 |
🚀 启动后操作:
检查容器状态:
1
2docker ps
docker logs n8n访问 n8n:
- 浏览器打开:
http://飞牛NAS-IP:5678 - 首次访问创建管理员账户
- 浏览器打开:
配置备份(建议):
1
2# 定期备份数据目录
cp -r /vol1/1000/n8n/n8n_data /vol1/1000/n8n/n8n_data_backup_$(date +%Y%m%d)
您的配置已经很完善了,只需要去掉那个注释符号就可以正常运行了!
时间: 2025-08-21T21:22:27
👤 用户
n8n如何设置中文版?
时间: 2025-08-21T21:28:46
🤖 DeepSeek (deepseek-chat)
在 n8n 中设置中文界面很简单,主要有以下几种方法:
🌐 方法一:通过网页界面设置(推荐)
- 访问 n8n:打开
http://你的IP:5678 - 登录后:点击右上角用户图标 → Settings
- 选择语言:在 Personal → Language 中选择 中文
- 保存:点击 Save changes
🐳 方法二:通过环境变量设置(容器启动时)
1 | docker run -d \ |
⚙️ 方法三:修改配置文件
如果已经运行了容器,可以修改配置文件:
1 | # 进入容器 |
🔧 完整的中文环境配置示例
1 | docker run -d \ |
📱 界面操作步骤截图:
登录后点击右上角用户图标
1
👤 → Settings
在设置页面选择
1
Personal → Language → 中文 → Save changes
🌍 支持的语言代码:
| 语言 | 环境变量值 |
|---|---|
| 简体中文 | zh-cn |
| 繁体中文 | zh-tw |
| 英语 | en |
| 德语 | de |
| 西班牙语 | es |
| 法语 | fr |
⚠️ 注意事项:
- 部分翻译可能不完整:n8n 的中文翻译可能不是 100% 完整
- 节点名称仍为英文:大多数节点的名称和参数保持英文
- 需要重启生效:通过环境变量修改后需要重启容器
- 用户个人设置优先:用户个人设置会覆盖全局默认设置
🔄 如果已经运行了容器:
1 | # 停止并删除现有容器 |
推荐使用方法二(环境变量),这样新用户首次访问时默认就是中文界面,无需手动设置。
时间: 2025-08-21T21:28:46
👤 用户
docker run -d
–name n8n
–restart=unless-stopped
-p 5678:5678
-v /vol1/1000/n8n/n8n_data:/home/node/.n8n
-v /vol1/1000/n8n/n8n_data/dist:/usr/local/lib/node_modules/n8n/node_modules/n8n-editor-ui/dist
-e TZ=”Asia/Shanghai”
-e GENERIC_TIMEZONE=”Asia/Shanghai”
-e NODE_ENV=production
-e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
-e N8N_RUNNERS_ENABLED=true
-e N8N_DIAGNOSTICS_ENABLED=false
-e N8N_DEFAULT_LOCALE=zh-CN
-e N8N_SECURE_COOKIE=false
n8nio/n8n:latest
时间: 2025-08-21T22:00:00
🤖 DeepSeek (deepseek-chat)
您的 Docker 命令有一个问题需要修正:
❌ 问题:不必要的 volume 映射
这一行是不需要的,而且可能会引起问题:
1 | -v /vol1/1000/n8n/n8n_data/dist:/usr/local/lib/node_modules/n8n/node_modules/n8n-editor-ui/dist |
✅ 修正后的命令:
1 | docker run -d \ |
📝 修正说明:
1. 移除了有问题的 volume 映射
n8n-editor-ui/dist是 n8n 的前端界面文件- 映射这个目录会覆盖容器内的前端文件,导致界面无法正常工作
- n8n 的界面文件不应该被外部修改
2. 语言代码修正
- 使用
zh-cn(小写)而不是zh-CN - n8n 的标准语言代码是小写的
3. N8N_SECURE_COOKIE=false 的适用场景
这个设置是正确的,如果:
- ✅ 通过 HTTP 访问(不是 HTTPS)
- ✅ 在本地网络中使用
- ✅ 不需要安全的 cookie 传输
🔧 如果需要 HTTPS,应该这样设置:
1 | docker run -d \ |
🚀 正确的 volume 使用建议:
只需要映射数据目录即可:
1 | # 正确:只映射数据目录 |
📊 您的配置现在很完善:
- ✅ 正确的持久化数据存储
- ✅ 中文界面支持
- ✅ 生产环境优化
- ✅ 适合本地 HTTP 访问的安全设置
去掉那个有问题的 volume 映射后,您的 n8n 应该能正常运行了!
时间: 2025-08-21T22:00:00
👤 用户
你错了。
-v /vol1/1000/n8n/n8n_data/dist:/usr/local/lib/node_modules/n8n/node_modules/n8n-editor-ui/dist
这个是语言包
-e N8N_DEFAULT_LOCALE=zh-cn
这个zn-CN这里必须大写!!!
时间: 2025-08-21T22:01:05
🤖 DeepSeek (deepseek-chat)
您说得对!我之前的解释有误。感谢您的纠正!
✅ 正确的语言设置:
1. 语言环境变量必须大写:
1 | -e N8N_DEFAULT_LOCALE=zh-CN # 正确:zh-CN 必须大写 |
2. 语言包映射是正确的:
1 | -v /vol1/1000/n8n/n8n_data/dist:/usr/local/lib/node_modules/n8n/node_modules/n8n-editor-ui/dist |
这个映射是为了将本地的中文语言包覆盖容器内的英文界面文件。
🎯 完整正确的命令:
1 | docker run -d \ |
📝 工作原理:
- 语言包覆盖:将本地
dist目录中的中文翻译文件映射到容器内 - 环境变量指定:
N8N_DEFAULT_LOCALE=zh-CN告诉 n8n 使用中文界面 - 界面显示:n8n 加载映射的中文语言文件显示中文界面
🔧 确保语言包文件存在:
在运行前,请确认您的目录结构:
1 | /vol1/1000/n8n/n8n_data/ |
🌐 其他语言代码示例:
1 | # 繁体中文 |
感谢您的指正!您的配置是正确的,特别是对于需要深度中文化定制的场景,这种映射方式非常有效。
时间: 2025-08-21T22:01:05
👤 用户
我正在建立一个工作流,就是这个:https://n8n.io/workflows/7422-amazon-affiliate-marketing-automation/
我截图中的应该如何填写
时间: 2025-08-21T22:52:56
🤖 DeepSeek (deepseek-chat)
根据您的截图和要使用的工作流,您需要配置 Google Sheets Trigger 节点的 OAuth 2.0 认证。以下是详细步骤:
📋 需要填写的信息:
1. OAuth 重定向 URL(已自动生成)
1 | http://localhost:5678/rest/oauth2-credential/callback |
- ✅ 这个URL是n8n自动生成的,不需要修改
- ✅ 在Google Cloud Console中需要配置这个重定向URI
2. 客户端 ID *(需要从Google获取)
- 需要到Google Cloud Console创建OAuth 2.0客户端ID
- 必填字段
3. 客户端密码 *(需要从Google获取)
- 与客户端ID配套的密钥
- 必填字段
🚀 配置步骤:
步骤一:创建Google Cloud项目
- 访问 Google Cloud Console
- 创建新项目或选择现有项目
- 启用所需API:
- Google Drive API
- Google Sheets API
步骤二:创建OAuth 2.0凭据
- 在左侧菜单选择”API和服务” → “凭据”
- 点击”创建凭据” → “OAuth客户端ID”
- 应用类型选择”Web应用程序”
- 在”已授权的重定向URI”中添加:
1
http://localhost:5678/rest/oauth2-credential/callback
- 创建后获得客户端ID和客户端密码
步骤三:在n8n中配置
- 将获取的客户端ID填入对应字段
- 将获取的客户端密码填入对应字段
- 点击”连接”按钮完成OAuth认证
🔑 详细配置流程:
1 | 1. **访问Google Cloud Console** |
⚠️ 重要注意事项:
- 测试用户设置:在OAuth同意屏幕中要添加自己的邮箱为测试用户
- 发布状态:如果只是自己使用,不需要发布到生产环境
- 本地运行:确保n8n运行在localhost:5678
- 权限范围:认证时会请求Google Drive和Sheets的访问权限
🎯 填写示例:
1 | 客户端 ID: 1234567890-abcdefg.apps.googleusercontent.com |
完成这些步骤后,点击”连接”按钮,会跳转到Google认证页面,登录您的Google账号并授权权限,就可以成功连接Google Sheets了。
需要更详细的哪个步骤的指导吗?
时间: 2025-08-21T22:52:56
👤 用户
这些过程收费吗?
时间: 2025-08-21T22:54:02
🤖 DeepSeek (deepseek-chat)
💰 完全免费!
所有这些过程都是完全免费的,您不需要支付任何费用:
✅ 免费的项目:
- Google Cloud Console - 免费使用
- OAuth 2.0 认证 - 免费创建和使用
- Google Sheets API - 有充足的免费额度
- Google Drive API - 有充足的免费额度
- n8n - 开源免费
📊 Google API 免费额度:
- Google Sheets API:每天 500 次请求(免费)
- Google Drive API:每天 1,000 次请求(免费)
- 对于个人自动化使用完全足够
💡 重要说明:
- 只需要一个Google账号(Gmail账号即可)
- 不需要绑定信用卡(除非您需要更高限额)
- 所有步骤都在免费 tier 内
⚠️ 唯一可能收费的情况:
如果您的工作流极其高频(每天超过上述免费额度),才会产生费用。但对于:
- 个人使用 ✅ 免费
- 小型业务 ✅ 免费
- 常规自动化 ✅ 免费
您可以放心配置使用,不会产生意外费用!
时间: 2025-08-21T22:54:02
👤 用户
Access blocked: n8n amazon has not completed the Google verification process
yuebinliu@gmail.com
n8n amazon has not completed the Google verification process. The app is currently being tested, and can only be accessed by developer-approved testers. If you think you should have access, contact the developer.
If you are a developer of n8n amazon, see error details.
Error 403: access_denied
什么原因?
时间: 2025-08-21T23:06:45
🤖 DeepSeek (deepseek-chat)
这个错误是因为您的 Google OAuth 应用还没有通过验证,并且没有将您的邮箱添加到测试用户列表中。
🚫 错误原因:
- 应用未验证:Google 要求所有访问用户数据的 OAuth 应用必须通过验证
- 测试用户限制:未验证的应用只能被明确授权的测试用户访问
- 安全限制:Google 阻止未验证应用访问敏感数据
✅ 解决方案:
方法一:最简单的方法 - 添加自己为测试用户
- 访问 Google Cloud Console:https://console.cloud.google.com/
- 选择您的项目
- 进入 “API和服务” → “OAuth同意屏幕”
- 在 “测试用户” 部分:
- 点击 “添加用户”
- 输入您的邮箱:
yuebinliu@gmail.com - 点击 “保存”
- 重新尝试认证
方法二:提交应用验证(如果需要公开使用)
如果只是自己使用,方法一就足够了。如果需要其他人也能使用:
- 在 OAuth 同意屏幕中点击 “发布应用”
- 填写额外的验证信息
- 提交给 Google 审核(需要几天时间)
📝 详细步骤截图:
进入 OAuth 同意屏幕:
1
Google Cloud Console → API和服务 → OAuth同意屏幕
添加测试用户:
1
滚动到"测试用户"部分 → 添加用户 → 输入 yuebinliu@gmail.com → 保存
重新连接:
- 回到 n8n
- 重新点击 Google Sheets 的”连接”按钮
- 现在应该可以正常认证了
⚡ 快速解决:
1 | 1. 登录 [Google Cloud Console](https://console.cloud.google.com/) |
💡 预防措施:
为了以后不再遇到这个问题,您可以:
- 添加所有可能需要使用的邮箱到测试用户列表
- 或者提交应用验证(如果您需要公开分享工作流)
🎯 只是自己使用?
如果只是您个人使用,只需要方法一(添加测试用户)就完全足够了,不需要完成完整的Google验证过程。
现在就去添加您的邮箱为测试用户吧!完成后就可以正常连接Google Sheets了。
时间: 2025-08-21T23:06:45
👤 用户
我的飞牛在局域网内运行N8N安装工作流的模板的地址是:http://192.168.2.100:5678/templates/7422/setup
为什么OAuth 重定向 URL是http://localhost:5678/rest/oauth2-credential/callback
时间: 2025-08-21T23:14:51
🤖 DeepSeek (deepseek-chat)
这是一个很好的问题!这是因为 n8n 的 OAuth 重定向 URL 是硬编码在容器内部的,它不知道您外部访问的 IP 地址。
🎯 原因解释:
1. 容器内部视角
- n8n 容器运行在 Docker 内部
- 它看到的自己就是
localhost:5678 - 不知道外部通过
192.168.2.100:5678访问
2. OAuth 回调机制
- OAuth 认证完成后,Google 需要回调到 n8n
- 这个回调是在容器内部发生的
- 所以必须使用容器内部的地址
localhost:5678
🔧 解决方案:
您需要告诉 n8n 它对外服务的真实地址:
方法一:添加环境变量(推荐)
1 | docker run -d \ |
方法二:或者使用单个变量
1 | -e WEBHOOK_URL=http://192.168.2.100:5678/ |
📝 重新配置 Google OAuth:
添加环境变量后,需要重新创建 OAuth 凭据:
- 删除现有的 Google Sheets 连接
- 重启 n8n 容器
- 重新添加 Google Sheets 节点
- 现在 OAuth 重定向 URL 应该显示为:
1
http://192.168.2.100:5678/rest/oauth2-credential/callback
- 在 Google Cloud Console 中更新重定向 URI
🔄 更新 Google Cloud Console:
- 访问 Google Cloud Console
- 进入您的项目 → API和服务 → 凭据
- 编辑 OAuth 2.0 客户端 ID
- 更新已授权的重定向 URI:
- 删除:
http://localhost:5678/rest/oauth2-credential/callback - 添加:
http://192.168.2.100:5678/rest/oauth2-credential/callback
- 删除:
⚠️ 重要提示:
- 先设置环境变量,再创建 OAuth 连接
- 局域网访问:确保局域网内其他设备能访问
192.168.2.100:5678 - 防火墙:检查飞牛NAS的防火墙设置
🌐 如果您有域名:
1 | # 如果使用域名和 HTTPS |
这样设置后,n8n 就会生成正确的 OAuth 重定向 URL,Google 认证也能正常回调到您的飞牛NAS了。
时间: 2025-08-21T23:14:51
👤 用户
那我目前使用localhost:5678影响我正确安装工作流吗?
时间: 2025-08-21T23:16:12
🤖 DeepSeek (deepseek-chat)
✅ 完全不影响安装工作流!
您目前使用 localhost:5678 的 OAuth 重定向 URL 不会影响工作流的安装和配置。
🎯 当前状态:
能正常工作的部分:
- ✅ 工作流安装:模板可以正常导入
- ✅ 节点配置:所有节点设置都能保存
- ✅ 工作流设计:可以正常设计工作流
- ✅ 大部分操作:90% 的功能都正常
受影响的部分:
- ⚠️ Google OAuth 认证:认证成功后回调可能有问题
- ⚠️ Webhook 接收:外部服务无法回调到 localhost
🔧 具体对您的影响:
对于 Amazon Affiliate Marketing 工作流:
✅ 可以完成:
- 安装工作流模板
- 配置所有节点
- 设置 Amazon API 凭据
- 设计工作流逻辑
⚠️ 可能遇到的问题:
- Google Sheets 认证成功后,回调可能失败
- 需要手动检查认证状态
🚀 建议的操作顺序:
先保持现状完成设计:
1
2# 先用当前配置完成工作流设计
http://192.168.2.100:5678/templates/7422/setup完成所有配置后,再解决 OAuth 问题:
- 如果 OAuth 认证失败,再添加环境变量重启
- 或者暂时通过其他方式处理数据
💡 临时解决方案:
如果 Google OAuth 认证失败,您可以:
- 手动导出/导入数据
- 使用其他连接方式(如服务账号)
- 完成工作流设计后再统一处理认证问题
📝 总结:
| 功能 | 是否受影响 | 说明 |
|---|---|---|
| 工作流安装 | ✅ 不影响 | 正常安装模板 |
| 节点配置 | ✅ 不影响 | 正常配置参数 |
| Google OAuth 认证 | ⚠️ 可能受影响 | 回调地址问题 |
| 工作流执行 | ✅ 不影响 | 正常执行 |
建议:先继续使用当前配置完成工作流的设计和配置,如果遇到 OAuth 认证问题再进行调整。这样不会影响您的工作进度!
时间: 2025-08-21T23:16:12
👤 用户
Invalid Redirect: must end with a public top-level domain (such as .com or .org).
Invalid Redirect: must use a domain that is a valid top private domain .
时间: 2025-08-21T23:39:40
🤖 DeepSeek (deepseek-chat)
这个错误是因为 Google Cloud Console 不接受 IP 地址或局域网地址作为重定向 URI!
🚫 问题原因:
Google 的 OAuth 2.0 政策要求:
- ✅ 必须使用公有域名(如 .com、.org 等)
- ❌ 不接受 IP 地址(192.168.x.x)
- ❌ 不接受局域网地址
- ❌ 不接受 localhost(仅在测试时有限使用)
✅ 解决方案:
方案一:使用域名(推荐)
- 申请一个免费域名(如 duckdns.org、noip.com)
- 配置 DDNS 指向您的飞牛NAS公网IP
- 配置端口转发 或使用反向代理
方案二:使用 Ngrok(临时解决方案)
1 | # 安装 ngrok |
方案三:使用 localhost 的特殊配置
1 | # 在Google Cloud Console中特殊配置 |
🎯 最实用的解决方案:使用免费域名
步骤一:获取免费域名
- 访问 duckdns.org
- 免费注册一个域名,如:
yourname.duckdns.org
步骤二:配置DDNS
- 在路由器中配置DDNS更新
- 或在飞牛NAS中配置动态DNS
步骤三:配置Google Cloud
1 | 已授权的重定向URI: |
🔧 如果您有公网IP:
配置端口转发:
- 路由器设置:将公网IP的5678端口转发到192.168.2.100:5678
- 防火墙:开放5678端口
- 使用域名访问:
http://your-domain.com:5678
或者使用反向代理(更安全):
1 | # Nginx 配置示例 |
💡 临时测试方案:
如果您只是测试,可以:
- 暂时使用 ngrok 生成临时域名
- 完成OAuth认证
- 认证成功后,即使ngrok断开,凭据通常仍然有效
📝 总结:
| 方案 | 难度 | 稳定性 | 推荐度 |
|---|---|---|---|
| 免费域名 + DDNS | ⭐⭐ | ✅ 高 | ⭐⭐⭐⭐⭐ |
| Ngrok | ⭐ | ⚠️ 临时 | ⭐⭐ |
| 本地修改配置 | ⭐⭐⭐ | ❌ 低 | ⭐ |
建议:申请一个免费的 duckdns 域名,这是最稳定且免费的解决方案!
时间: 2025-08-21T23:39:40
👤 用户
OpenRouter Chat Model
您选择的凭据将用于工作流模板的 OpenRouter Chat Model2, OpenRouter Chat Model1 和 OpenRouter Chat Model 个节点中。
这里应该怎么填写?
时间: 2025-08-21T23:44:19
🤖 DeepSeek (deepseek-chat)
根据您的截图,这里需要配置 OpenRouter 的 API 密钥。OpenRouter 是一个提供多种AI模型访问的聚合平台。
🎯 需要填写的信息:
1. API Key *(必填)
- 这是访问 OpenRouter API 的认证密钥
- 需要从 OpenRouter 官网获取
📋 获取 API Key 的步骤:
步骤一:注册 OpenRouter 账号
- 访问 OpenRouter 官网
- 点击 “Sign Up” 注册账号
- 完成邮箱验证
步骤二:获取 API Key
- 登录后点击右上角用户图标
- 选择 “Keys” 或 “API Keys”
- 点击 “Create new key”
- 复制生成的 API Key
步骤三:在 n8n 中配置
- 将复制的 API Key 粘贴到 “API Key” 字段
- 点击 “连接” 按钮保存凭据
🔑 API Key 示例格式:
1 | sk-or-v1-1234567890abcdef1234567890abcdef1234567890abcdef |
⚙️ 完整配置流程:
1 | 1. **访问 OpenRouter**:https://openrouter.ai/ |
💰 费用说明:
- OpenRouter 本身免费注册
- 按使用量付费:根据选择的AI模型和使用量收费
- 有免费额度:新用户通常有一些免费额度
- 价格透明:每个模型都有明确的价格/每1000个token
🎯 常用的 OpenRouter 模型:
在配置好凭据后,您可以在工作流中选择:
- GPT-4(OpenAI)
- Claude(Anthropic)
- Gemini(Google)
- Llama(Meta)
- 以及其他数十种模型
⚠️ 重要提示:
- 保管好 API Key:不要泄露给他人
- 设置预算限制:可以在 OpenRouter 后台设置使用限额
- 查看费用:定期在 OpenRouter 后台查看使用情况
- 测试连接:配置完成后测试一下连接是否正常
🔧 如果遇到问题:
- API Key 无效:重新生成一个新的 Key
- 额度不足:在 OpenRouter 中添加支付方式
- 模型不可用:尝试选择其他可用模型
完成配置后,您的 Amazon Affiliate 自动化工作流就可以使用 AI 模型来处理产品描述、生成内容等任务了!
时间: 2025-08-21T23:44:19
👤 用户
Facebook Graph API
您选择的凭据将用于工作流模板的 Facebook Graph API 节点中。
怎么填?
时间: 2025-08-21T23:49:12
🤖 DeepSeek (deepseek-chat)
根据您的截图,这里需要配置 Facebook Graph API 的访问令牌(Access Token)。这是用于访问Facebook API的认证凭证。
🎯 需要填写的信息:
Access Token *(必填)
- 这是访问 Facebook Graph API 的认证令牌
- 需要从 Facebook 开发者平台获取
📋 获取 Access Token 的步骤:
步骤一:创建 Facebook 开发者账号
- 访问 Facebook 开发者平台
- 用您的 Facebook 账号登录
- 点击 “我的应用” → “创建应用”
步骤二:创建应用
- 选择应用类型:通常选择 “商业”
- 填写应用名称和联系邮箱
- 完成创建
步骤三:获取 Access Token
- 在应用仪表板中,进入 “工具” → “Graph API 资源管理器”
- 点击 “生成访问令牌”
- 选择需要的权限(根据工作流需求)
- 复制生成的 Access Token
⚙️ 详细配置流程:
1 | 1. **访问开发者平台**:https://developers.facebook.com/ |
🔑 Access Token 示例格式:
1 | EAAXjw0kZCKHkBO9wZAZB1ZBWZBTwQZBTwQZBTwQZBTwQZD |
📋 常用所需权限:
根据 Amazon Affiliate 工作流,可能需要:
pages_manage_posts(管理页面帖子)pages_read_engagement(读取页面互动)business_management(商业管理)ads_management(广告管理)
⚠️ 重要注意事项:
1. Token 有效期:
- 短期Token:通常2小时有效期
- 长期Token:需要交换获得,通常60天
- 需要定期刷新
2. 审核要求:
- 某些权限需要提交Facebook审核
- 个人使用可以选择”开发模式”
3. 安全提示:
- 不要泄露Access Token
- 在Facebook开发者平台可以随时撤销Token
4. 业务验证:
- 如果使用商业权限,可能需要业务验证
💡 替代方案:
如果觉得Facebook开发者配置太复杂,可以考虑:
- 使用测试模式:仅限自己使用
- 选择其他发布渠道:如Twitter、Email等
- 手动操作:先完成工作流其他部分,后期再配置Facebook
🔧 如果遇到问题:
- 权限被拒绝:检查所需权限是否都已申请
- Token过期:重新生成新的Access Token
- 审核失败:详细阅读Facebook的审核要求
完成配置后,您的工作流就可以自动将Amazon affiliate产品发布到Facebook页面了!
时间: 2025-08-21T23:49:12
👤 用户
什么意思?
时间: 2025-08-22T00:10:15
🤖 DeepSeek (deepseek-chat)
这是您选择的 Amazon Affiliate Marketing Automation 工作流的安装指南。它告诉您需要配置哪些服务才能让整个工作流正常运行。
📋 需要配置的5个核心服务:
1. Google Sheets 📊
- 作用:作为数据源,存储产品链接和状态
- 需要操作:连接Google Sheets,确保有”Product Link”和”Facebook Upload”列
2. RapidAPI 🔌
- 作用:通过API获取Amazon产品详情(价格、图片、描述等)
- 需要操作:注册RapidAPI账号,获取API Key
3. OpenRouter 🤖
- 作用:使用AI生成产品描述和社交媒体文案
- 需要操作:注册OpenRouter账号,配置API密钥
4. Google Gemini API 🎨
- 作用:生成图片提示词和创建产品图片
- 需要操作:获取Google Gemini API密钥
5. Facebook Graph API 📱
- 作用:自动发布产品到Facebook页面
- 需要操作:配置Facebook开发者账号,获取访问令牌
🚀 工作流程:
1 | graph LR |
💰 可能产生的费用:
| 服务 | 免费额度 | 付费说明 |
|---|---|---|
| RapidAPI | 有限免费调用 | 按API调用次数收费 |
| OpenRouter | 少量免费额度 | 按token使用量收费 |
| Google Gemini | 免费额度较多 | 超过后按使用量收费 |
| 完全免费 | 仅API调用,不包括广告费 |
⏰ 配置时间预估:
- 新手:1-2小时(需要注册多个账号)
- 有经验的:30-45分钟
💡 建议的配置顺序:
- 先配置Google Sheets(最简单)
- 然后RapidAPI(获取产品数据)
- 再配置AI服务(OpenRouter + Gemini)
- 最后Facebook(最复杂)
⚠️ 注意事项:
- 需要注册多个平台的账号
- 部分服务可能需要信用卡(但免费额度通常足够个人使用)
- Facebook配置相对复杂,需要开发者账号
您需要逐个配置这些服务,整个工作流才能正常运行。想要我先帮您详细解释哪个服务的配置步骤?
时间: 2025-08-22T00:10:15
👤 用户
1先配置Google Sheets(最简单)
时间: 2025-08-22T00:11:05
🤖 DeepSeek (deepseek-chat)
好的!我们先从最简单的 Google Sheets 开始配置。这是整个工作流的数据源和触发器。
📋 配置 Google Sheets 的步骤:
步骤一:准备 Google Sheets 表格
- 创建新的Google Sheets 或使用现有表格
- 确保有以下列:
Product Link- Amazon产品链接Facebook Upload- 上传状态(留空,工作流会自动更新)
- 示例格式:
1
2
3
4| Product Link | Facebook Upload |
|---------------------------------------|-----------------|
| https://www.amazon.com/dp/B0XXXXXXX | |
| https://www.amazon.com/dp/B0YYYYYYY | |
步骤二:在 n8n 中配置 Google Sheets 触发器
- 在工作流中找到 “Google Sheets Trigger” 节点
- 点击节点进行配置
- 选择或创建 Google Sheets 凭据:
- 点击”更改身份验证”
- 选择”OAuth2”
- 完成Google认证(需要登录您的Google账号)
步骤三:配置触发器设置
1 | # 节点配置示例: |
🎯 详细操作截图:
- 打开 Google Sheets Trigger 节点
- 点击”身份验证”字段
- 选择”OAuth2” → “Connect Account”
- 完成Google登录授权
- 选择您的工作表和范围
🔧 配置示例:
1 | - **电子表格**: 选择您的Google Sheets文件 |
⚠️ 重要提示:
- 确保列名准确:必须是”Product Link”和”Facebook Upload”
- 权限设置:Google Sheets需要设置为”任何知道链接的人都可以编辑”
- 触发器测试:添加一个测试链接,查看是否能触发工作流
💡 测试方法:
- 在Google Sheets中添加一个Amazon产品链接
- 保存表格
- 查看n8n工作流是否自动触发
- 观察”Facebook Upload”列是否被更新
🚀 下一步建议:
完成Google Sheets配置后,接下来配置:
- RapidAPI(获取产品数据)
- OpenRouter(AI文案生成)
- Gemini(图片生成)
- Facebook(自动发布)
现在请打开您的Google Sheets,确保表格格式正确,然后开始在n8n中配置Google Sheets Trigger节点吧!需要我详细说明哪个具体步骤吗?
时间: 2025-08-22T00:11:05
对话统计
- 消息总数: 44 条
- 处理状态: 成功转换