平台服务
平台服务是你连接自己账户的地方,共支持 33 个服务商:Git 托管、主机与部署、数据库、后端、监控、支付和消息。PocketCode 自己没有账户,也没有额度:它把你的密钥加密保存在手机上,并直接调用服务商的 API。本页讲的是凭据本身:如何连接、检查、替换和移除。之后你在每个服务里看到的内容,属于 Backend Manager、数据库和项目。
是什么以及如何打开
有四个入口,最终都通向同样的凭据面板。
| 入口 | 方式 |
|---|---|
| 设置 | 设置 → 集成 → 已连接的服务 会打开全屏的 平台服务 列表。打开前会先要求生物识别或屏幕锁定,返回 会回到设置。 |
| Backend Manager | 点底部栏的 工具,再点 后端。模块先打开欢迎页:连接你的第一个服务(已有服务时显示 连接其他服务)会打开 服务 标签,搜索框已就绪。这个标签也在 状态 · 项目 · 服务 切换器里,一点就到。如果某个服务商的 Backend 屏幕还没有凭据,会直接带你到该服务商的连接面板。 |
| 项目 | 在“从服务克隆”列表中,GitHub、GitLab 或 Bitbucket 旁的 未连接 — 点击以连接 会打开平台服务,并直接展开该服务。这条路径会跳过生物识别提示,返回 也不会经过设置。 |
| 服务面板 | 在已连接服务的面板里,在 Backend Manager 中打开 会让 Backend Manager 直接定位到该服务商。 |
屏幕地图
本模块的全部屏幕,从列表一直到 Backend Manager 自己的面板。
| 屏幕 | 如何到达 | 你可以做什么 |
|---|---|---|
| 平台服务(列表) | 设置 → 集成 → 已连接的服务,或项目里的 未连接 — 点击以连接。 | 在 33 个服务中搜索,查看哪些已连接、是否可用,在某个服务接近请求上限时收到提示,并打开任意服务。 |
| 服务面板 | 点列表中的一行。 | 没有保存任何账户时连接该服务,已有至少一个账户时管理它。Firebase 总是打开连接面板。 |
| 连接面板 | 从服务面板进入,也可从 替换密钥 和 添加账户 进入。 | 第 1 步说明去哪里获取凭据,第 2 步是把它交给 PocketCode,之后是结果和一个主按钮。它有四种形态:令牌、简短表单、验证码或浏览器登录。 |
| 凭据卡片 | 已保存账户后,打开的是它而不是连接面板。 | 查看健康状态、密钥指纹、上次核对、请求量和权限。立即核对、替换密钥、断开、切换账户、添加账户、在 Backend Manager 中打开。 |
| 后端 → 服务 标签 | 工具 → 后端 → 服务。 | 搜索,查看 已连接(每次显示五个)以及按类别分组的 连接 目录,以两列卡片网格呈现。 |
| Backend 连接面板 | 点目录里的某张服务卡片。 | 先用生物识别或屏幕锁定确认(确认是你本人),然后是与上面相同的连接面板。 |
| Backend 管理面板 | 点已连接的服务(手机),或 管理连接(宽屏窗口)。 | 同一张凭据卡片,添加账户 位于标题栏。 |
| 账户窗格(宽屏窗口) | 平板或横屏:列表在左,窗格在右。 | 在左边选一个服务。 然后可以 打开账号(当该服务商在 Backend Manager 中有账户屏幕时)和 管理连接。 |

33 个服务
共 8 个类别、33 个服务,按平台服务列表的分组方式排列。PocketCode 向你索取什么,取决于具体服务。
四种连接方式
- 令牌 — 18 个服务。把一个值粘贴到一个字段。
- 简短表单 — 11 个服务。两三个字段,机密内容会被遮蔽。
- 验证码 — GitHub 和 GitLab。它们显示一个短代码,你在其页面上输入。
- 浏览器 — Railway,以及用 Google 账号登录的 Firebase。你在服务商页面上批准。
验证码和浏览器登录需要你安装的应用里自带 PocketCode 在该服务商处的登录注册。如果没有,同一个面板会告诉你,并改为向你索取令牌(Firebase 则是三个字段)。
版本控制 · 3
| 服务 | 连接方式 |
|---|---|
| GitHub | 验证码,或以令牌作为后备 |
| GitLab | 验证码,或以令牌作为后备 |
| Bitbucket | 2 个字段:你的 Atlassian 邮箱 和 API 令牌 |
托管与部署 · 8
| 服务 | 连接方式 |
|---|---|
| Render | 令牌 |
| Vercel | 令牌 |
| Netlify | 令牌 |
| Railway | 浏览器登录,或以令牌作为后备 |
| Fly.io | 令牌 |
| Cloudflare | 令牌 |
| DigitalOcean | 令牌 |
| Expo EAS | 2 个字段:访问令牌 和 应用 ID 或 slug |
数据库 · 7
| 服务 | 连接方式 |
|---|---|
| Firebase | 用 Google 账号浏览器登录,或以 3 个字段作为后备:项目 ID、应用 ID、API 密钥 |
| Neon | 令牌 |
| Supabase | 令牌 |
| PlanetScale | 2 个字段:服务令牌 ID 和 服务令牌 |
| MongoDB Atlas | 2 个字段,有两种变体:Service account(客户端 ID、客户端密钥)或 API key(公钥、私钥) |
| Turso | 令牌 |
| Upstash | 2 个字段:邮箱 和 API 密钥 |
后端与 BaaS · 4
| 服务 | 连接方式 |
|---|---|
| Appwrite | 3 个字段:API 端点、项目 ID、API 密钥 |
| Convex | 令牌 |
| PocketBase | 3 个字段:服务器地址、超级用户邮箱、超级用户密码 |
| Clerk | 令牌(即 secret key) |
监控 · 5
| 服务 | 连接方式 |
|---|---|
| Sentry | 令牌 |
| PostHog | 令牌 |
| UptimeRobot | 令牌 |
| Axiom | 2 个字段:API 令牌 和 数据集 |
| Healthchecks.io | 令牌 |
支付 · 2
| 服务 | 连接方式 |
|---|---|
| Stripe | 令牌(受限的 rk_ 密钥最安全) |
| RevenueCat | 令牌(v2 secret key) |
媒体 · 1
| 服务 | 连接方式 |
|---|---|
| Cloudinary | 3 个字段:云名称、API 密钥、API secret |
通信 · 3
| 服务 | 连接方式 |
|---|---|
| Resend | 令牌(Full access) |
| OneSignal | 2 个字段:应用 ID 和 应用 API 密钥 |
| Twilio | 3 个字段:账户 SID、API 密钥 SID、API 密钥 secret |
平台服务屏幕
一个全屏列表。返回 或 Android 返回手势可以关闭它。
你可以
- 用 搜索 33 个服务 按名称或描述搜索。无论哪种语言,描述都是英文,搜索也会匹配这些英文描述。
- 最先看到 已连接:每个保存了凭据的服务,附带徽标、账户名、上次核对时间和一个健康标签:正常、待修复(上次核对失败,或密钥可读但不能写入;失败原因会替换副标题)或 核对中。
- 当某个服务在最近一小时内用掉了服务商限额的 80 % 时,会出现琥珀色提示:<服务> 的请求量接近上限。打开查看剩余额度。 点它即可打开该服务。
- 在带计数的类别标题下浏览目录的其余部分。每一行都写明了连接方式:API 密钥、访问令牌、2 个字段、使用验证码登录 或 使用 Railway 登录;当服务商无法限制密钥范围时,还会加上“· 整个账户”。
- 点任意一行打开它的面板。搜索没有匹配项时会显示 未找到服务。
你不能
- 在两个列表里同时看到同一个服务:已连接的服务,即使显示 待修复,也只出现在 已连接 下。目录里只保留未连接的服务。有意为之
- 在没有生物识别或屏幕锁定的情况下,从设置打开该列表。设置会显示 请设置屏幕锁定或生物识别以访问 API 密钥。(文案写的是 API 密钥,尽管该行是已连接的服务)。设备
- 截屏或录屏:该窗口被标记为安全窗口。有意为之
连接账户
点平台服务里该服务的一行,或 Backend 服务 标签里它的卡片;每个服务旁边并没有 连接 按钮。打开的面板各部分固定,顺序也固定。
连接面板由什么组成
- 标题栏。 徽标、名称,以及一行形态摘要,例如 API 密钥 · 加密保存在本机、3 个字段 · 机密信息加密保存在本机 或 用 GitHub 登录 · 输入代码,无需令牌。
- 最先出现的提示, 仅当 PocketCode 本想打开浏览器却做不到时才有:PocketCode 尚未为 <服务> 注册 OAuth 应用,因此无法通过浏览器登录。 之后才是令牌或字段。
- 第 1 步:去哪里获取。 服务商的提示、警告或建议、权限标签,以及指向创建密钥页面的链接。
- 第 2 步:交给 PocketCode。 字段、要输入的代码,或在浏览器中批准的说明。
- 结果和一个主按钮。
粘贴令牌
- 1打开该服务。第 1 步 从 <服务> 获取密钥 会显示服务商的提示;当密钥无法限定到账户的一部分时显示警告,当服务商能签发只读密钥时显示建议;有权限清单的服务商还会显示 读取所需的最小权限 和 写入还需要 标签;以及 打开令牌页面,指向你创建密钥的页面。Convex、Turso、Healthchecks.io、Clerk 和 RevenueCat 没有直达链接:提示里会告诉你去哪里找密钥。
- 2在服务商那里按这些权限创建密钥。
- 3在第 2 步 粘贴到这里 中,点 粘贴,或直接粘贴到被遮蔽的字段里。一个按钮用来显示或隐藏该值,另一个用来复制它。
- 4PocketCode 会整理你粘贴的内容,并告诉你它做了什么:空格或换行、引号、开头的“Bearer”、一行
NAME=value(保留其中的值),或粘贴的 JSON 里的某个值,都会显示为 核对前已整理:…。它还会显示识别出的类型,例如 受限密钥、正式模式 或 细粒度令牌。 - 5点 连接并检查。PocketCode 用这把密钥调用服务商的 API,并显示结果。
填写简短表单
- 1打开该服务。第 1 步 在 <服务> 中找到它们 会告诉你每个值在哪里,并在服务商有对应页面时链接到其控制台。
- 2第 2 步 填写它们 每个值一个字段,带有易懂的名称和等宽字体的技术名称。字段格式看起来正确时,一条细进度条会逐步填满(读屏软件会播报为 2 / 3 个字段格式正确)。MongoDB Atlas 会先让你选择 Service account 或 API key。
- 3点 连接并检查。有些服务会在后台把这些字段合成一个凭据(Bitbucket、PlanetScale 等);你看到的始终是分开的字段。
- 4不使用 Google 登录的 Firebase 会显示同类表单,字段为 项目 ID、应用 ID 和 API 密钥,取自你自己的
google-services.json或 Firebase 控制台,另有 打开 Firebase 控制台。它的按钮写的是 保存,因为这个表单不会向 Google 核对任何内容(你的 Firestore 规则仍可能拒绝读取)。清除 会清空三个字段。
用验证码登录(GitHub、GitLab)
- 1打开 GitHub 或 GitLab。第 1 步 GitHub 会给你一个代码 说明流程:无需复制令牌,你在浏览器里输入一个短代码,PocketCode 会自行完成。它会列出将请求的权限:GitHub 为
repo、read:user和user:email;GitLab 为api、read_user和read_repository。 - 2点 向 GitHub 申请代码。代码会以大字显示,旁边是 复制代码。
- 3点 打开 GitHub,在打开的页面输入代码并批准。保持 PocketCode 打开:它会显示 正在等待你的批准…,并自动完成连接。
- 4随后出现结果。如果代码过期,重新申请一个。
在浏览器中登录(Railway、Firebase)
- 1打开 Railway 或 Firebase。第 1 步 Railway 会向你请求什么 列出 PocketCode 请求的权限;服务商在你批准之前会显示同样的清单。
- 2点 连接 Railway。Firebase 的按钮写的是 连接 Firebase,登录用的是你的 Google 账号。
- 3在浏览器中批准。PocketCode 会自动带你回来并显示结果。
- 4如果失败,重试 会重新登录一次。
- Railway 请求只读的查看权限(
workspace:viewer、project:viewer)。 - Firebase 向 Google 请求只读访问(
firebase.readonly、cloud-platform.read-only)。这是你自己的 Firebase 项目,不是 PocketCode 的,它为数据库模块里的 Firestore 浏览器提供数据。
检查结果
连接时,PocketCode 会向服务商发出一次真实调用,并以三个级别之一作答。
| 结果 | 含义 |
|---|---|
| 可以使用 | 当服务商告知你的用户名时显示 可以使用 · <名称>。PocketCode 能读取的内容全部可用。 |
| 可以使用,但无法写入 | 密钥可以读取,但缺少写入权限:缺少:workflow。需要该权限的内容会显示为尚未读取。只有 GitHub 能判断这一点:它会报告令牌的权限范围,而 GitHub 的细粒度令牌不会,所以它们显示 可以使用。 |
| 该密钥无效,或 无法连接到 <服务>(验证码和浏览器) | 随后会给出服务商的真实原因。见“故障排查”。 |
该给密钥哪些权限
对于粘贴的令牌,面板会列出要勾选的权限,你不必猜测。十个服务列出了读取所需的最小权限,五个服务列出了写入还需要什么。
| 服务 | 读取所需的最小权限 | 写入还需要 |
|---|---|---|
| GitHub | repo、read:user、user:email | workflow |
| GitLab | read_api | api |
| Bitbucket | — | write:pipeline:bitbucket |
| Railway | workspace:viewer、project:viewer | — |
| Cloudflare | Read all resources 模板 | — |
| DigitalOcean | app:read、billing:read | — |
| Sentry | org:read、project:read、event:read、alerts:read | event:write |
| PostHog | 13 个读取权限,从 user:read 和 project:read 到 query:read 和 survey:read | feature_flag:write、error_tracking:write、annotation:write |
| Axiom | query | — |
| Stripe | Balance、Charges、PaymentIntents、Events(受限密钥) | — |
| Resend | Full access | — |
- 有 15 个服务可以只读,面板会建议你这样做(该服务商支持只读令牌……):GitHub、GitLab、Railway、Fly.io、Cloudflare、DigitalOcean、Appwrite、Upstash、Sentry、PostHog、UptimeRobot、Axiom、Healthchecks.io、Stripe 和 Twilio。
- 有 9 个服务无法限制密钥范围:Render、Netlify、Supabase、Resend、Clerk、RevenueCat、PocketBase、OneSignal 和 Cloudinary。粘贴之前面板会给出警告:你粘贴的任何内容都拥有账户的完全访问权限,所以不再需要时请到服务商那里撤销。
在连接面板上
你可以
- 粘贴、显示或隐藏、复制该值;查看 PocketCode 识别出了什么、整理了什么。
- 在第 1 步打开服务商的令牌页面或控制台。
- 出现结果后:完成、换一个密钥、重试,或在密钥格式看起来可疑但并非不可能时点 仍然使用此密钥。
- 只凭一把密钥就能连接:你不需要给账户命名。之后显示的账户名是服务商返回的那个。
你不能
- 用格式明显不对的值连接(例如在该填密钥的地方填了一个网址):在格式正确之前,按钮保持禁用。有意为之
- 通过
http://连接 PocketBase。它会提示 PocketCode 只通过 https:// 连接:使用 http:// 时你的密码会以明文传输。有意为之 - 当你的应用版本没有 PocketCode 在该服务商处的注册信息时,使用验证码或浏览器登录。面板会这样告知,并提供令牌或字段作为替代。尚未提供
- 保留一把未通过检查的密钥。无效的内容不会被保存:未保存任何内容。 如果你是在替换某个账户的密钥,该账户会从这台手机上移除,你需要重新连接。有意为之
管理连接
只要已保存至少一个账户,点该服务就会打开凭据卡片,而不是连接面板。Firebase 是例外:它没有卡片,总是打开连接面板,三个字段已填好,并带有 清除。
卡片由上到下显示什么
| 部分 | 你看到什么 |
|---|---|
| 账户 | 仅在有多个账户时出现:每个账户一个标签,以服务商的用户名命名(或 主账户)。点标签即可切换。 |
| 密钥 | 健康标签(正常、待修复 或 核对中)和凭据类型:API 密钥、个人访问令牌、API 凭据 或 已通过 OAuth 登录。然后是指纹:例如 rk_live_••••••••9Qf2 加上识别出的标签,或 ••••(N 个字符),或 已用 OAuth 登录,这里没有可替换的密钥。,或 在 PocketCode 支持预览之前保存的。替换密钥即可在此查看。 |
| 账户 · 添加时间 · 上次核对 · 请求 | 账户名、日期、上次核对及其延迟(或 尚未核对),以及 最近一小时 N 次请求 和 服务商限额:…。当服务商与你自己的网页控制台共用该限额时,会显示 此限额与你自己的网页控制台共用。 |
| 这个密钥能做什么 | 读取所需的最小权限 和 写入还需要 标签;当本次会话中最近一次核对发现缺口时,附带 缺少:…;或者是完整账户警告;或者是 PocketCode 尚未记录此服务商的权限信息。 |
| 立即核对 · 替换密钥 | 立即核对 会重新发起核对调用,并记录日期、延迟和结果。替换密钥 会打开连接面板;对于用 OAuth 登录的账户,它写作 重新连接。 |
| 断开 <服务> | 会询问 要从这台手机上删除 <服务> 的密钥吗?,选项为 保留 和 断开,并附一个链接,指向你在服务商处撤销密钥的页面。 |
| 卡片下方 | 添加账户(带锁的 添加账户 · Pro)、服务描述(无论哪种语言都是英文)、功能 标签、一张“它有什么用”的小卡片,多数服务附带快速入门(仅英文)、在 Backend Manager 中打开、网站 和 文档。 |
你可以
- 随时用 立即核对 重新检查已保存的密钥;核对失败时密钥仍会保留并显示原因,你可以就地修复。
- 用 替换密钥 把密钥换成新的,或用 重新连接 重新登录。
- 用 断开 从这台手机上移除密钥。这也会移除它的刷新令牌和 OAuth 授权。有两个账户时,只会移除你正在查看的那个,另一个接替它。
- 在你已连接的账户之间切换。这不需要 Pro。
你不能
- 在应用里到服务商处撤销密钥。断开 只会删除 PocketCode 保存的那一份:它在 <服务> 那边仍然有效,直到你在那里撤销它。 确认窗口里有指向服务商撤销页面的链接。有意为之
- 在免费版里添加同一服务商的第二个账户。添加账户 · Pro 会改为打开订阅页面。Pro
- 再次看到完整密钥或找回它。指纹最多只显示密钥的 8 个字符;不足 16 个字符的密钥不显示任何内容,密码也只显示长度。有意为之
- 查看密钥实际拥有哪些权限,除非本次会话中最近一次核对查明了:否则卡片显示的是 PocketCode 为该服务商声明的权限,而不是这把密钥被授予的权限。有意为之
同一服务商的多个账户
- 每个服务商的第一个账户是免费的。从第二个开始,添加账户 · Pro 会显示一把锁,并打开订阅页面。
- 有了 Pro,添加账户 会为新账户打开连接面板;你不需要给它命名,它的标签用的是服务商返回的用户名。
- 在已有账户之间切换不会发起任何网络调用,也不需要 Pro。
- 在 Backend 服务 标签里,有多个账户的服务会在其行下方直接显示这些标签。
在 Backend Manager 中
- 管理面板就是同一张卡片。凭据类型取决于服务(个人访问令牌、API 密钥、OAuth 或 Google 账号)。
- 它没有 请求 行、会话权限、描述、功能、快速入门、网站 或 文档,而 添加账户 位于面板的标题栏。
- 断开 完成后会关闭该面板。
- 从这里打开订阅页面时,显示的是 Backend Manager 通用的 Pro 页面;从设置打开时,则是针对 每个提供商多个账户 的那一页。
每个连接用在哪里
平台服务负责保存凭据。下面这些地方会读取它。
| 位置 | 它用这个连接做什么 |
|---|---|
| Backend Manager | 33 个服务都在那里定义;每个服务显示什么,见 Backend Manager 页面。它是主要使用者。读取免费,在服务商处做破坏性更改需要 Pro,可逆操作免费。 |
| 数据库 | 用你已经提供的连接,打开 Supabase、Neon、PlanetScale、MongoDB Atlas、Turso、Upstash、Cloudflare(D1)、DigitalOcean(托管数据库)和 Firebase(Firestore)的项目。 |
| 项目 | 列出并克隆你在 GitHub、GitLab 和 Bitbucket 上的仓库。从 GitHub 面板克隆算作一个新项目:在免费版里没有空位时,会关闭面板并打开项目的订阅页面。 |
| 代码编辑器与 AI 聊天 — Git | 通过 HTTPS 推送和拉取时,使用与远程主机匹配的已连接服务的令牌。 |
| 状态动态 | 打开带有 CI 远程的项目时,每次选择会把它的 CI 状态加入 Backend Manager 动态一次,不会轮询。 |
| AI 聊天 | 它的后端工具通过相同的连接、相同的检查来读取,与各屏幕一致:确认提示,以及破坏性更改的 Pro 限制。 |
免费版与 Pro
平台服务只有一道 Pro 门槛:同一服务商的第二个账户。你可以连接的服务数量没有上限。
| 功能 | 免费版 | Pro |
|---|---|---|
| 连接 33 个服务中的任意一个 | 可以:每个服务商的第一个账户 | 可以 |
| 同一服务商的多个账户(添加账户 · Pro) | 不可以:一把锁会打开订阅页面 | 可以 |
| 在已连接的账户之间切换 | 可以 | 可以 |
| 立即核对、替换密钥、重新连接、断开 | 可以 | 可以 |
| 在 Backend Manager 中读取每个服务显示的内容 | 可以 | 可以 |
| 在手机上对服务商做破坏性更改(环境变量、DNS 记录、域名、扩缩容、暂停) | 不可以 | 可以(Backend Manager 功能) |
| 服务商处的可逆更改(在部署数量上限内重新部署、取消、启动和停止 Fly.io 机器、Sentry issue 操作、清除 Cloudflare 缓存) | 可以 | 可以 |
隐私与安全
PocketCode 如何处理你交给它的密钥。
- 保存在哪里。 在这台手机上,保存于 Android 的加密偏好设置:AES-256-GCM,密钥由 Android Keystore 持有。如果无法创建该存储,PocketCode 绝不会退回到明文存储。
- 每个 PocketCode 用户一份存储。 退出登录不会删除它,其他账户也看不到它。切换 PocketCode 账户会切换已连接服务的集合。
- 每个账户保存什么。 凭据、添加日期、服务商处的用户名和邮箱、某些服务需要的额外值(Vercel 团队 ID、Firebase 的三个字段、OAuth 登录的刷新令牌)以及指纹:识别出的前缀加最后 4 个字符,或前 4 个加最后 4 个;最多不超过密钥的 8 个字符,不足 16 个字符的密钥不保存任何内容。
- 不进入备份。 应用关闭了 Android 备份,因此你的连接不会被云备份或还原复制。换新手机后需要重新连接。
- 没有中间人。 密钥只会发给服务商自己的 API,放在它的 Authorization 请求头或服务商对应的位置。这些调用在 PocketCode 这边没有任何中间服务器。例外是你自己指定的服务器:PocketBase 和自托管的 Appwrite 会与你输入的服务器地址通信,PocketBase 只能通过 https://。验证码和浏览器登录会与服务商交换其代码。
- 隐藏它的屏幕。 平台服务、服务面板和 Backend Manager 的连接面板会阻止截屏、录屏和最近任务缩略图。Backend Manager 的管理面板和服务列表只显示被遮蔽的指纹,没有这种保护。
- 生物识别,并不统一。 从设置打开平台服务时会要求生物识别或屏幕锁定。在 Android 11 及更高版本上,PIN、图案或密码都可以;在更旧的版本上则需要强生物识别。Backend Manager 的连接面板也会询问,显示 确认是你本人 和 你即将查看并修改某个服务的凭据。,但当手机两者都没有时会直接打开。管理面板、服务列表以及从项目进入的路径不会询问。
- 剪贴板。 在 Android 13 及更高版本上,复制的令牌会被标记为敏感内容,系统预览会将其隐藏。登录验证码没有被标记,所以你可以核对它是不是你的。
- 断开只是遗忘。 它会删除本地副本,包括刷新令牌,但不会在服务商处撤销任何东西。
限制
平台服务做不到什么,以及原因。徽章说明这是谁定的规则。
- 同一服务商的第二个账户需要 Pro。第一个是免费的。Pro
- 连接需要网络和服务商处的账户:核对是一次真实调用,验证码或浏览器登录必须在服务商网站上批准。如果耗时太久,验证码会过期。需要网络
- 断开不会在服务商处撤销密钥;请到它的网站上撤销。有意为之
- 支付、消息和媒体类服务是只读的。无法通过它们发送邮件、短信或推送通知,也无法转移资金。有意为之
- Firebase 只有一个连接:没有卡片,也不能添加额外账户。有意为之
- Vercel 不签发只读令牌:把你的令牌限制到一个团队或项目,并设置过期日期。第三方
- Fly.io 的控制台只签发完整权限的令牌。需要只读令牌时,请在电脑上运行
fly tokens create readonly。第三方 - Resend:只有 Full access 密钥可用。仅发送的密钥无法读取域名,会被拒绝。第三方
- Neon:请使用个人或组织 API 密钥。项目级密钥无法列出项目。第三方
- Supabase:请使用你账户的访问令牌(
sbp_…),而不是某个项目的anon或service_role密钥。第三方 - PlanetScale:新建的 service token 没有任何权限;请在 PlanetScale 中给它授予数据库的读取权限(或对所有现有和未来的数据库授权)。第三方
- MongoDB Atlas:如果你的组织要求 API 访问列表,请把手机的 IP 地址加进去。数据库的用户名和密码不填在这里;打开集群时,数据库会向你索取。第三方
- Turso:平台令牌要用 CLI 创建(
turso auth api-tokens mint pocketcode);没有对应的网页。第三方 - Twilio:绝不要用 Auth Token;请使用 API Key SID 及其 secret,并备好 Account SID。PocketCode 只用它读取,因为这个凭据能花真钱。有意为之
- Expo EAS:它的 API 是非官方的,而且只读,所以连接最终可能处于未确认状态。第三方
- Bitbucket:请使用你的 Atlassian 邮箱和在 id.atlassian.com 创建的 API 令牌,而不是 Bitbucket 用户名。第三方
- 有九个服务无法限制密钥范围,所以你粘贴的就是完全访问权限:Render、Netlify、Supabase、Resend、Clerk、RevenueCat、PocketBase、OneSignal 和 Cloudinary。第三方
故障排查
多数标题就是应用显示的消息;<服务> 代表服务商的名称。
<服务> 拒绝了此令牌:它无效、已过期或已被吊销。请重新创建并再次粘贴。
服务商返回了 401。请在服务商处新建一把密钥(面板在有对应页面时会提供链接)并再次粘贴。PocketCode 已经会去掉空格、换行和开头的“Bearer”,所以请确认你复制了完整的密钥。
<服务> 接受了该令牌,但它没有 PocketCode 所需的权限。请重新创建,并授予账户的读取权限。
服务商返回了 403。对有清单的服务,第 1 步会在 读取所需的最小权限 中列出要勾选的内容;请带着这些权限重新创建密钥。
<服务> 返回 404:主机或账户路径有误,问题不在令牌。
问题不在密钥。请检查表单要求的地址或 ID,例如 PocketBase 的 服务器地址 或 Appwrite 的 API 端点。
<服务> 正在限流。请等待一分钟后重试。
服务商返回了 429:你暂时用完了它的请求额度。卡片的 请求 行会显示你在最近一小时内用了多少。
无法连接到 <服务>。请检查网络后重试。
服务商没有响应。核对是一次真实调用,所以需要网络。
<服务> 返回 HTTP <n>。
其他任何状态码都会原样显示。请稍后再试;如果持续出现,请查看服务商的状态页面。
PocketCode 尚未为 <服务> 注册 OAuth 应用,因此无法通过浏览器登录。请改为粘贴令牌,效果完全相同。
你的应用版本没有携带 PocketCode 在该服务商处的登录注册信息。同一个面板会改为向你索取令牌(表单则是:请改为填写下面的字段。)。
这个 Resend 密钥只能发送邮件。请创建 Full access 密钥,以便 PocketCode 读取域名和邮件。
Resend 的密钥分为仅发送和完全访问两种。读取需要 Full access。
此 endpoint 下没有该 ID 的项目。请检查项目 ID 以及 endpoint 中的区域。
Appwrite:密钥属于某一个项目和某一个区域。请检查 项目 ID 和 API 端点。如果返回的是 Appwrite 无法识别此 API 密钥。请确认它是在你填写的项目 ID 对应的项目中创建的。,说明这把密钥是在别的项目里创建的。
PocketCode 只通过 https:// 连接:使用 http:// 时你的密码会以明文传输。
PocketBase:请写出以 https:// 开头的服务器完整地址。
令牌已保存。Expo 的 API 并非官方接口,未能确认账户,因此列出构建时仍可能失败。
令牌已保存,但 Expo 没有确认账户。请打开 Backend Manager,看看构建是否能加载。
代码在获批前已过期。请向 <服务> 重新申请。
点 重试 获取新代码,并在它失效之前批准。
该请求在 <服务> 上被拒绝,未保存任何内容。
你在服务商页面上拒绝了这次登录。如果是误操作,请重新开始。
MongoDB Atlas 拒绝了请求,因为此设备的 IP 地址不在你的 key 或 service account 的 API 访问列表中。
请在 Atlas → Applications 中添加手机的 IP,或关闭组织的访问列表要求。
没有返回原因。请检查是否复制了完整的密钥。
服务商没有说明原因。请从它的页面重新复制密钥,并完整粘贴。
可以使用,但无法写入
只有 GitHub 会报告这一点:令牌可用,但缺少写入权限,例如 缺少:workflow。请在勾选该权限后重新创建令牌。
某个服务显示 待修复
上次核对失败,或者密钥可读但不能写入。密钥仍然保存着。请打开该服务,阅读原因,然后点 立即核对(或 替换密钥)。
请设置屏幕锁定或生物识别以访问 API 密钥。
手机上没有屏幕锁定或生物识别时,设置不会打开已连接的服务。请先设置一个,或从 Backend Manager 连接。