使用Apps Script调用Binance API遇美国IP限制的解决方案咨询
解决Google Apps Script调用Binance API的区域IP限制问题
方法一:通过GCP云函数中转请求
Apps Script默认从美国IP发起请求,你可以用GCP云函数做中转层,让请求从非美国区域发出:
- 创建GCP云函数时,选择新加坡、东京等Binance允许的非美国区域
- 在云函数中编写代码,接收Apps Script的请求并转发到
api.binance.com,再将响应返回给Apps Script - 在Apps Script中调用自己的GCP云函数,而非直接请求Binance API
- 核心注意:Binance API密钥要存在GCP云函数的环境变量中,绝对不能硬编码在脚本里,防止泄露
方法二:关联非美国区域的GCP项目到Apps Script
Apps Script的执行IP和它关联的GCP项目区域绑定,默认是美国,可切换到自定义GCP项目:
- 在Google Cloud Console新建一个GCP项目,设置区域为非美国地区(比如
asia-southeast1) - 在Apps Script编辑器的「项目设置」中,勾选「显示appsscript.json清单文件」
- 修改
appsscript.json里的gcpProjectNumber,关联到新建的非美国区域GCP项目 - 重新部署脚本,此时脚本的请求会从GCP项目所在区域的IP发出,避开美国IP限制
注意事项
- 严格遵守Binance的API使用条款,不要规避合规要求
- 测试阶段先调用Binance的公开无权限端点(比如
/api/v3/ticker/price),确认IP区域不受限后再进行需要密钥的操作 - 所有敏感信息(API密钥、密钥密码)通过环境变量或GCP Secret Manager管理,禁止明文写在代码里
内容的提问来源于stack exchange,提问作者Niel de Wet
相关产品推荐
相关产品推荐

