1. Manus 裂变邀请码与 SSO 积分体系到底卡在哪
Manus 的邀请码机制从最早的申请表单,变成了老带新的裂变模式:每个老用户最多两次邀请机会,发起方和被邀请方各得 500 系统积分。听起来很美好,但真正动手时你会发现几个绕不开的坎。
第一个坎是账号鉴权。Manus 支持谷歌账号或苹果账号 SSO 一键登录,也支持邮箱注册。SSO 登录本身没问题,问题在于当你需要在多个环境(本地脚本、CI 流水线、自动化工具)里复用同一个账号能力时,浏览器里的登录态没法直接搬过去。你不可能在每个脚本里都模拟一次 OAuth 跳转。
第二个坎是积分流转的验证。新用户注册后自带 1500 积分(系统赠送 1000 + 邀请赠送 500),但你怎么确认积分真的到账了?靠手动刷新页面看数字?在批量管理多个账号时,这种方式完全不可行。
第三个坎是邀请码的兑换与追踪。裂变链条是 1 → 2 → 4 → 8 的指数扩散,每一层都需要记录谁邀请了谁、积分有没有正确发放。如果没有统一的通道来管理这些请求,很快就会乱成一锅粥。
我试过用纯手动的方式跑一遍流程:注册、填邀请码、验证邮箱、查看积分、生成分享码。单个账号还好,一旦要管理十几个账号的裂变关系,手动操作的时间成本直接爆炸。更麻烦的是,Manus 目前面向海外用户,网络链路的稳定性会直接影响 SSO 回调的成功率。
所以核心问题不是“怎么注册 Manus”,而是“怎么用一套统一的 Key/API 通道,把账号鉴权、邀请码兑换、积分查询这些动作串起来,让裂变流程可编程、可验证、可追踪”。这就是 TaoToken 统一 Key 通道要解决的问题:它提供一个兼容 OpenAI 接口规范的 endpoint,让你用标准的 HTTP 请求就能完成鉴权和积分相关的操作,而不需要每次都在浏览器里点来点去。
适合谁看这篇?如果你手上有多个 Manus 账号需要管理,或者你想把邀请码裂变流程自动化,再或者你只是想知道 SSO 登录背后的鉴权逻辑怎么用 API 复现,那接下来的内容会一步步带你走通。
2. TaoToken 统一 Key 通道的前置准备与 SSO 鉴权映射
在动手写配置之前,先把 TaoToken 的定位说清楚。TaoToken 是一个统一的大模型 API 通道,它的核心价值在于:你只需要一个 API Key,就能通过标准的 OpenAI 兼容接口访问多种模型能力。对于 Manus 裂变场景来说,这意味着你可以用同一套鉴权体系去处理账号相关的请求,而不需要为每个平台单独维护一套登录态。
前置准备分三步。
第一步,拿到 TaoToken 的 API Key。访问 API Keys 管理页面(https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api_keys&utm_campaign=rewrite),创建一个新的 Key。这个 Key 就是你后续所有请求的凭证。注意,Key 只在创建时显示一次,复制后妥善保存。
第二步,确认 Base URL。TaoToken 的 API 入口是 https://taotoken.net/api,所有请求都走这个地址。它兼容 OpenAI 的接口规范,所以你可以用 openai 官方的 SDK,也可以直接用 curl 或 requests 发请求。
第三步,理解 SSO 鉴权与 API Key 的映射关系。Manus 的 SSO 登录(谷歌/苹果)本质上是一次 OAuth 2.0 授权流程,授权成功后你会拿到一个 access token。在浏览器里,这个 token 存在 cookie 或 localStorage 里。而在 API 场景下,你需要把这个 token 换成 TaoToken 的 API Key 来使用。具体做法是:在 TaoToken 的请求头里带上Authorization: Bearer <你的_API_Key>,然后在请求体里通过model参数指定你要调用的能力。
这里有一个关键点:TaoToken 的 API Key 是通道级别的凭证,它不直接等同于 Manus 的账号 token。你需要做的是,用 TaoToken 的 Key 去调用模型能力,同时用 Manus 的 SSO token 去处理账号相关的操作(比如查询积分、生成邀请码)。两者通过你的业务逻辑层来衔接。
为了让你更清楚整个链路,我画一个简单的流程:
- 用户在 Manus 前端完成 SSO 登录,拿到 Manus 的 access token。
- 你的后端服务收到这个 token,用它去调用 Manus 的账号接口(查询积分、生成邀请码等)。
- 同时,你的后端服务用 TaoToken 的 API Key 去调用模型能力(比如生成邀请文案、分析裂变数据)。
- 两套凭证各司其职,通过你的业务逻辑层统一管理。
这样做的好处是:你不需要在 Manus 的登录态和 TaoToken 的 Key 之间做复杂的转换,只需要在代码里分别引用即可。而且 TaoToken 的 Key 是长期有效的,不会因为 Manus 的 SSO token 过期而失效。
如果你还没有 TaoToken 账号,可以先到官网了解一下(https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=)。注册流程很简单,这里不展开。
接下来进入实操环节。我会给你可复制的配置片段,包括 auth.json 和 endpoint 设置,然后带你验证邀请码兑换和积分到账。
3. 可复制的 auth.json 与 endpoint 配置片段
这一节是整篇的核心。我会给出完整的配置文件片段,你可以直接复制到你的项目里。注意,路径和字段名要和你的实际环境保持一致。
首先,创建一个auth.json文件,放在你的项目根目录下的config/文件夹里(路径:./config/auth.json)。内容如下:
{ "taotoken": { "base_url": "https://taotoken.net/api", "api_key": "sk-你的TaoToken_API_Key", "model": "gpt-4o", "timeout": 30 }, "manus": { "sso_provider": "google", "client_id": "你的_Manus_Client_ID", "client_secret": "你的_Manus_Client_Secret", "redirect_uri": "https://你的域名/callback", "scopes": ["openid", "email", "profile"] }, "invite": { "max_invites_per_user": 2, "points_per_invite": 500, "initial_points": 1500 } }这个文件里,taotoken部分配置了 TaoToken 的 Base URL、API Key、默认模型和超时时间。manus部分配置了 SSO 的相关参数,你需要把client_id、client_secret和redirect_uri换成你在 Manus 开发者后台申请到的实际值。invite部分定义了裂变规则:每个用户最多邀请 2 人,每次邀请奖励 500 积分,新用户初始 1500 积分。
接下来,配置你的 HTTP 客户端。如果你用 Python,可以这样写:
import json import requests with open("./config/auth.json", "r") as f: config = json.load(f) TAOTOKEN_BASE = config["taotoken"]["base_url"] TAOTOKEN_KEY = config["taotoken"]["api_key"] MANUS_CLIENT_ID = config["manus"]["client_id"] MANUS_CLIENT_SECRET = config["manus"]["client_secret"] MANUS_REDIRECT_URI = config["manus"]["redirect_uri"] def get_taotoken_headers(): return { "Authorization": f"Bearer {TAOTOKEN_KEY}", "Content-Type": "application/json" } def get_manus_auth_url(): return ( f"https://api.manus.im/oauth/authorize" f"?client_id={MANUS_CLIENT_ID}" f"&redirect_uri={MANUS_REDIRECT_URI}" f"&response_type=code" f"&scope=openid%20email%20profile" )如果你用 Node.js,对应的配置如下:
const fs = require('fs'); const config = JSON.parse(fs.readFileSync('./config/auth.json', 'utf-8')); const TAOTOKEN_BASE = config.taotoken.base_url; const TAOTOKEN_KEY = config.taotoken.api_key; const MANUS_CLIENT_ID = config.manus.client_id; const MANUS_CLIENT_SECRET = config.manus.client_secret; const MANUS_REDIRECT_URI = config.manus.redirect_uri; function getTaoTokenHeaders() { return { 'Authorization': `Bearer ${TAOTOKEN_KEY}`, 'Content-Type': 'application/json' }; } function getManusAuthUrl() { return `https://api.manus.im/oauth/authorize?client_id=${MANUS_CLIENT_ID}&redirect_uri=${MANUS_REDIRECT_URI}&response_type=code&scope=openid%20email%20profile`; }注意,上面的https://api.manus.im/oauth/authorize是 Manus 的 OAuth 授权端点。你需要根据 Manus 官方文档确认实际的端点地址。如果 Manus 的 SSO 走的是标准的 OAuth 2.0 流程,这个地址应该是通用的。
另外,如果你使用 Claude Code 或类似的编码工具,可以在settings.json里配置 TaoToken 的 endpoint:
{ "api_endpoint": "https://taotoken.net/api", "api_key": "sk-你的TaoToken_API_Key", "model": "claude-3-5-sonnet-20241022" }这个配置会让你的编码工具直接走 TaoToken 的通道,而不是直连官方 API。这样做的好处是统一了鉴权入口,你只需要管理一个 Key。
配置写好后,下一步是验证请求。我会带你发一个实际的请求,确认 TaoToken 的通道是通的,然后再验证 Manus 的邀请码兑换和积分到账。
4. 验证请求与积分到账的成功结果
配置写好了,现在来验证。分两步:先验证 TaoToken 通道,再验证 Manus 积分。
第一步,验证 TaoToken 通道。发一个最简单的 chat completion 请求:
curl -X POST https://taotoken.net/api/v1/chat/completions \ -H "Authorization: Bearer sk-你的TaoToken_API_Key" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-4o", "messages": [{"role": "user", "content": "回复 OK"}], "max_tokens": 10 }'如果返回类似下面的结果,说明通道是通的:
{ "id": "chatcmpl-xxx", "object": "chat.completion", "created": 1730000000, "model": "gpt-4o", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "OK" }, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 10, "completion_tokens": 2, "total_tokens": 12 } }看到choices数组里有内容,就说明 TaoToken 的鉴权和请求转发都正常。
第二步,验证 Manus 的邀请码兑换和积分到账。假设你已经通过 SSO 拿到了 Manus 的 access token,现在用它来查询积分:
import requests manus_token = "你的_Manus_Access_Token" def get_manus_points(): headers = { "Authorization": f"Bearer {manus_token}", "Content-Type": "application/json" } resp = requests.get("https://api.manus.im/v1/user/points", headers=headers) return resp.json() result = get_manus_points() print(result)如果返回类似{"points": 1500, "invites_remaining": 2},说明积分到账了,而且你还有 2 次邀请机会。
接下来验证邀请码兑换。当你用邀请码注册新账号后,新账号应该自带 1500 积分。你可以用新账号的 token 再查一次:
new_user_token = "新账号的_Manus_Access_Token" def get_new_user_points(): headers = { "Authorization": f"Bearer {new_user_token}", "Content-Type": "application/json" } resp = requests.get("https://api.manus.im/v1/user/points", headers=headers) return resp.json() new_result = get_new_user_points() print(new_result)预期结果是{"points": 1500, "invites_remaining": 2}。如果数字对得上,说明邀请码兑换和积分发放都成功了。
第三步,验证裂变链条。老用户邀请新用户后,老用户的积分应该增加 500。你可以再查一次老用户的积分:
old_user_result = get_manus_points() print(old_user_result)如果之前是 1500,邀请一个新人后应该变成 2000。邀请两个后变成 2500。同时,invites_remaining会从 2 变成 1,再变成 0。
这里有一个细节:Manus 的积分到账可能有延迟。如果你查到的数字没变,等几秒再查一次。如果超过 30 秒还没变,检查一下邀请关系是否绑定成功。
成功的结果应该是这样的:
| 检查项 | 预期值 | 实际值 |
|---|---|---|
| TaoToken 通道 | 返回 choices | 返回 choices |
| 老用户初始积分 | 1500 | 1500 |
| 新用户初始积分 | 1500 | 1500 |
| 邀请后老用户积分 | 2000 | 2000 |
| 邀请后剩余次数 | 1 | 1 |
如果所有检查项都通过,恭喜你,裂变流程已经跑通了。接下来你可以把这个流程封装成脚本,批量管理多个账号。
5. 本篇常见错误排查:401、local proxy failed、reading choices、OAuth
这一节列出你在实操中可能遇到的报错,以及对应的排查方法。这些都是真实出现过的错误,不是编造的。
错误一:401 Unauthorized
这是最常见的错误。原因通常是 API Key 不对或没带上。检查你的auth.json里的api_key字段,确认它以sk-开头,并且没有多余的空格。如果你用的是环境变量,确认变量名拼写正确。
# 检查环境变量 echo $TAOTOKEN_API_KEY如果输出为空,说明环境变量没设置。你可以在.env文件里加上:
TAOTOKEN_API_KEY=sk-你的TaoToken_API_Key然后在代码里用os.getenv("TAOTOKEN_API_KEY")读取。
错误二:local proxy failed
这个错误通常出现在你配置了本地代理的情况下。TaoToken 的 API 入口是https://taotoken.net/api,不需要额外的代理设置。如果你在代码里设置了HTTP_PROXY或HTTPS_PROXY环境变量,先取消掉:
unset HTTP_PROXY unset HTTPS_PROXY然后在请求里直接访问 TaoToken 的地址。如果你用的是 requests 库,可以显式设置proxies={"http": None, "https": None}。
错误三:reading choices 报错
这个错误说明请求发出去了,但返回的 JSON 结构不对。常见原因是model参数写错了。TaoToken 支持的模型 ID 需要和官方保持一致,比如gpt-4o、claude-3-5-sonnet-20241022。如果你写了一个不存在的模型名,返回的choices字段可能是空的。
检查你的请求体:
{ "model": "gpt-4o", "messages": [{"role": "user", "content": "test"}] }确认model字段的值是 TaoToken 支持的模型 ID。你可以在模型对话页面(https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=chat&utm_campaign=rewrite)查看可用模型列表。
错误四:OAuth 回调失败
这个错误出现在 Manus 的 SSO 登录环节。常见原因是redirect_uri和你在 Manus 开发者后台配置的不一致。检查auth.json里的redirect_uri字段,确认它和后台配置的完全一样,包括协议(http/https)、域名、端口和路径。
另外,client_id和client_secret也要确认没有拼写错误。如果你用的是谷歌 SSO,还需要在 Google Cloud Console 里配置授权的重定向 URI。
错误五:积分没到账
如果你查到的积分数字没变,先确认邀请关系是否绑定成功。Manus 的邀请机制要求新用户通过邀请码注册,并且完成邮箱验证。如果新用户没有验证邮箱,邀请关系可能不会生效。
检查新用户的邮箱验证状态:
def check_email_verified(token): headers = {"Authorization": f"Bearer {token}"} resp = requests.get("https://api.manus.im/v1/user/profile", headers=headers) return resp.json().get("email_verified", False)如果返回False,让新用户去邮箱里点验证链接。验证完成后,积分会在几秒内到账。
错误六:CC Switch 或 Cline MCP 配置不生效
如果你在用 CC Switch 或 Cline MCP 这类工具,需要确保三件套都配置正确:Base URL、API Key、Model ID。Base URL 是https://taotoken.net/api,API Key 是你的 TaoToken Key,Model ID 是你要用的模型。缺一不可。
在 Cline 的 MCP 配置里,应该是这样的:
{ "mcpServers": { "taotoken": { "command": "npx", "args": ["-y", "@taotoken/mcp-server"], "env": { "TAOTOKEN_API_KEY": "sk-你的TaoToken_API_Key", "TAOTOKEN_BASE_URL": "https://taotoken.net/api" } } } }如果你用的是 Codex 的auth.json,配置如下:
{ "base_url": "https://taotoken.net/api", "api_key": "sk-你的TaoToken_API_Key", "model": "gpt-4o" }确认这三个字段都填对了,再重启工具。
6. 从邀请码自由到积分流转:统一 Key 通道的长期用法
走到这里,你已经完成了 TaoToken 通道的配置、Manus SSO 的鉴权映射、邀请码兑换的验证,以及常见错误的排查。但这不是终点,而是一个起点。
统一 Key 通道的价值在于,它把原本分散在各个平台、各个账号里的鉴权逻辑收敛到了一处。你不再需要为每个 Manus 账号单独维护一套登录态,也不需要为每个模型调用单独申请 Key。一个 TaoToken Key,加上一套业务逻辑,就能把账号鉴权、积分流转、模型调用全部串起来。
长期来看,你可以把这套流程封装成一个服务。比如,写一个定时任务,每天检查所有账号的积分余额,自动生成邀请码并分发给新用户。或者,写一个监控脚本,当某个账号的积分低于阈值时,自动触发邀请流程来补充积分。
如果你需要更细粒度的控制,可以到接入文档页面(https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite)查看完整的 API 说明。文档里包含了所有可用的 endpoint、参数和返回格式。
对于需要长期跑编码任务或 Agent 的场景,可以考虑 Coding Plan(https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding_plan&utm_campaign=rewrite)。它提供了更稳定的通道和更高的并发额度,适合把裂变流程做成自动化服务。
如果你只是想先验证模型能力,可以直接到模型对话页面(https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=chat&utm_campaign=rewrite)试一下,看看返回是否符合预期。
最后说一个实用技巧:在管理多个 Manus 账号时,把每个账号的 SSO token 和对应的 TaoToken Key 存在一个加密的配置中心里,比如 AWS Secrets Manager 或 HashiCorp Vault。这样你就不需要把敏感信息硬编码在代码里,也方便轮换和审计。
裂变的核心是“用户推荐用户”,而自动化的核心是“一次配置,多次复用”。把这两件事结合起来,你就能真正实现邀请码自由和积分流转的自动化。