简介
要在 Square Cloud 上开发和托管 Telegram 机器人,遵循一套结构化的配置和前置条件流程至关重要。本技术指南将涵盖整个过程,从初始设置到生产环境部署。前置条件
本指南运行在 Node.js 运行时或 Python 运行时上。创建项目
一个 Telegram 账户对于测试你的机器人并与之交互至关重要。如果你还没有账户,请访问 Telegram 官方网站 创建你的账户。在 Telegram 上创建机器人应用
找到 BotFather
访问 Telegram Web 并搜索官方的 BotFather 机器人,它负责在平台上创建和管理机器人。

获取令牌
与 BotFather 开始一段对话并输入 
/start。然后,选择 /newbot 选项来创建一个新机器人。系统会要求你为机器人指定一个名称,确认后,将自动生成所需的身份验证令牌。
开发机器人
使用 grammY(Node.js)或 pyTelegramBotAPI(Python)编写机器人。两个示例都会原样回复每条文本消息:- Node.js - grammY
- Python - telebot
- 确认系统中已安装 Node.js。否则,请从 Node.js 官方网站 下载。
- 初始化一个新的 Node.js 项目:
Terminal
- 安装 grammY 库:
Terminal
- 创建主文件(
index.js),结构如下:
index.js
配置 Square Cloud
在项目根目录、主文件旁边创建squarecloud.app 文件。它告诉 Square Cloud 如何运行你的机器人:
MAIN是 Square Cloud 运行的文件,MEMORY是机器人的内存(单位 MB)。机器人至少需要 256 MB;512 MB 则留有增长空间。AUTORESTART=true会在机器人崩溃时重新启动它。请参阅自动重启的工作方式。- 没有
SUBDOMAIN:使用长轮询时,机器人不需要公开 URL。
设置机器人令牌
你的代码从TELEGRAM_BOT_TOKEN 环境变量读取令牌,因此令牌永远不会出现在你的文件中。可以通过以下任一方式设置:
- 控制面板:在上传页面打开 Advanced configuration,添加名为
TELEGRAM_BOT_TOKEN的变量,值为你的令牌。对于已部署的机器人,请在应用的 Environment Variables 页面添加它,然后重启机器人。 - CLI:上传机器人后(参见部署并验证),立即使用
squarecloud app env set设置它并重启机器人:
ZIP 中包含什么
- 你的主文件(
index.js或main.py)和其他源文件。 package.json或requirements.txt。squarecloud.app。
node_modules、.venv 和 __pycache__:Square Cloud 会在机器人启动时安装依赖。
部署并验证
创建上面所述的 ZIP,然后上传:通过控制面板
1
访问上传页面
访问上传页面并上传你的项目 zip 文件。
2
配置你的环境
上传 zip 后,你需要为项目配置名称、主文件或运行时环境以及其他设置。
如果你上传的是 Web 项目,请务必选择 “Web Publication” 并为项目设置子域名。
如果你上传的是 Web 项目,请务必选择 “Web Publication” 并为项目设置子域名。
3
部署你的项目
最后,点击 “Deploy” 按钮,即可将项目托管到 Square Cloud。
部署完成后,你可以在控制面板中监控项目的状态和日志。
部署完成后,你可以在控制面板中监控项目的状态和日志。

4
确认你的应用已上线
首次部署通常在一分钟内完成。在控制面板中,等待你的应用状态显示为运行中,并检查日志中是否有启动错误。
如果你部署的是网站或 API,请在浏览器中打开
如果你部署的是网站或 API,请在浏览器中打开
https://<your-subdomain>.squareweb.app,你应该能看到应用正常响应。如果你部署的是机器人,发送一条命令确认它已上线。
通过 CLI
要使用此方法,你的项目根目录中需要有一个名为squarecloud.app 的配置文件。它告诉 Square Cloud 如何运行你的应用。
配置文件指南
了解如何创建定义你应用环境的
squarecloud.app 配置文件。1
安装 CLI
安装 Square Cloud CLI。如果你已经安装,运行同一条命令即可更新:
2
登录
运行下面的命令。它会打开你的浏览器:在浏览器中批准登录后,CLI 即可使用。无需复制任何 API 密钥。如需在脚本和 CI 中使用,请参阅 CLI 身份验证。
3
上传你的项目
4
确认你的应用已上线
首次部署通常在一分钟内完成。直接在终端中检查你的应用状态和日志:如果你部署的是网站或 API,请在浏览器中打开
https://<your-subdomain>.squareweb.app,你应该能看到应用正常响应。如果你部署的是机器人,发送一条命令确认它已上线。
测试机器人
部署完成后,在 Telegram 上找到你的机器人并给它发送一条消息。机器人会回复相同的文本,这就确认它正在运行。
常见错误
Error 409: Conflict: terminated by other getUpdates request
机器人的另一个副本正在使用同一个令牌读取更新,例如你在电脑上启动的那个。Telegram 只会把更新发送给每个机器人的一个长轮询连接。请停止另一个副本;如果你不知道它在哪里运行,请在 BotFather 中撤销令牌,然后设置新令牌并重启机器人。Error 401: Unauthorized
令牌错误或已被撤销。请从 BotFather 复制当前令牌,重新设置后重启机器人。令牌为空或 KeyError: 'TELEGRAM_BOT_TOKEN'
没有设置 TELEGRAM_BOT_TOKEN 变量:grammY 会以 Empty token! 停止,Python 示例会以 KeyError 停止。请按照设置机器人令牌中的说明设置该变量,然后重启机器人。
后续步骤
应用无法启动
修复缺少模块、内存错误和其他启动失败问题。
环境变量
管理机器人的令牌和其他密钥。
python-telegram-bot 与 aiohttp
在使用 python-telegram-bot?修复频繁出现的 NetworkError 异常。

