跳转到内容
首页
Docs/平台服务

平台服务

平台服务是你连接自己账户的地方,共支持 33 个服务商:Git 托管、主机与部署、数据库、后端、监控、支付和消息。PocketCode 自己没有账户,也没有额度:它把你的密钥加密保存在手机上,并直接调用服务商的 API。本页讲的是凭据本身:如何连接、检查、替换和移除。之后你在每个服务里看到的内容,属于 Backend Manager、数据库和项目。

是什么以及如何打开

有四个入口,最终都通向同样的凭据面板。

入口方式
设置设置 → 集成 → 已连接的服务 会打开全屏的 平台服务 列表。打开前会先要求生物识别或屏幕锁定,返回 会回到设置。
Backend Manager点底部栏的 工具,再点 后端。模块先打开欢迎页:连接你的第一个服务(已有服务时显示 连接其他服务)会打开 服务 标签,搜索框已就绪。这个标签也在 状态 · 项目 · 服务 切换器里,一点就到。如果某个服务商的 Backend 屏幕还没有凭据,会直接带你到该服务商的连接面板。
项目在“从服务克隆”列表中,GitHub、GitLab 或 Bitbucket 旁的 未连接 — 点击以连接 会打开平台服务,并直接展开该服务。这条路径会跳过生物识别提示,返回 也不会经过设置。
服务面板在已连接服务的面板里,在 Backend Manager 中打开 会让 Backend Manager 直接定位到该服务商。
本页只讲凭据。之后你在一个服务里看到的内容(项目、部署、日志、余额)由 Backend Manager、数据库和项目负责呈现。

屏幕地图

本模块的全部屏幕,从列表一直到 Backend Manager 自己的面板。

屏幕如何到达你可以做什么
平台服务(列表)设置 → 集成 → 已连接的服务,或项目里的 未连接 — 点击以连接。在 33 个服务中搜索,查看哪些已连接、是否可用,在某个服务接近请求上限时收到提示,并打开任意服务。
服务面板点列表中的一行。没有保存任何账户时连接该服务,已有至少一个账户时管理它。Firebase 总是打开连接面板。
连接面板从服务面板进入,也可从 替换密钥 和 添加账户 进入。第 1 步说明去哪里获取凭据,第 2 步是把它交给 PocketCode,之后是结果和一个主按钮。它有四种形态:令牌、简短表单、验证码或浏览器登录。
凭据卡片已保存账户后,打开的是它而不是连接面板。查看健康状态、密钥指纹、上次核对、请求量和权限。立即核对、替换密钥、断开、切换账户、添加账户、在 Backend Manager 中打开。
后端 → 服务 标签工具 → 后端 → 服务。搜索,查看 已连接(每次显示五个)以及按类别分组的 连接 目录,以两列卡片网格呈现。
Backend 连接面板点目录里的某张服务卡片。先用生物识别或屏幕锁定确认(确认是你本人),然后是与上面相同的连接面板。
Backend 管理面板点已连接的服务(手机),或 管理连接(宽屏窗口)。同一张凭据卡片,添加账户 位于标题栏。
账户窗格(宽屏窗口)平板或横屏:列表在左,窗格在右。在左边选一个服务。 然后可以 打开账号(当该服务商在 Backend Manager 中有账户屏幕时)和 管理连接。
Backend Manager, Services tab: Search 33 services, a stack of connected logos, Connected with five services and 2 more, and the Connect catalog starting with Hosting
后端 → 服务:搜索框、徽标堆叠、已连接(五行和“另外 2 个”)以及按类别分组的连接目录

33 个服务

共 8 个类别、33 个服务,按平台服务列表的分组方式排列。PocketCode 向你索取什么,取决于具体服务。

四种连接方式

  • 令牌 — 18 个服务。把一个值粘贴到一个字段。
  • 简短表单 — 11 个服务。两三个字段,机密内容会被遮蔽。
  • 验证码 — GitHub 和 GitLab。它们显示一个短代码,你在其页面上输入。
  • 浏览器 — Railway,以及用 Google 账号登录的 Firebase。你在服务商页面上批准。

验证码和浏览器登录需要你安装的应用里自带 PocketCode 在该服务商处的登录注册。如果没有,同一个面板会告诉你,并改为向你索取令牌(Firebase 则是三个字段)。

版本控制 · 3

服务连接方式
GitHub验证码,或以令牌作为后备
GitLab验证码,或以令牌作为后备
Bitbucket2 个字段:你的 Atlassian 邮箱 和 API 令牌

托管与部署 · 8

服务连接方式
Render令牌
Vercel令牌
Netlify令牌
Railway浏览器登录,或以令牌作为后备
Fly.io令牌
Cloudflare令牌
DigitalOcean令牌
Expo EAS2 个字段:访问令牌 和 应用 ID 或 slug

数据库 · 7

服务连接方式
Firebase用 Google 账号浏览器登录,或以 3 个字段作为后备:项目 ID、应用 ID、API 密钥
Neon令牌
Supabase令牌
PlanetScale2 个字段:服务令牌 ID 和 服务令牌
MongoDB Atlas2 个字段,有两种变体:Service account(客户端 ID、客户端密钥)或 API key(公钥、私钥)
Turso令牌
Upstash2 个字段:邮箱 和 API 密钥

后端与 BaaS · 4

服务连接方式
Appwrite3 个字段:API 端点、项目 ID、API 密钥
Convex令牌
PocketBase3 个字段:服务器地址、超级用户邮箱、超级用户密码
Clerk令牌(即 secret key)

监控 · 5

服务连接方式
Sentry令牌
PostHog令牌
UptimeRobot令牌
Axiom2 个字段:API 令牌 和 数据集
Healthchecks.io令牌

支付 · 2

服务连接方式
Stripe令牌(受限的 rk_ 密钥最安全)
RevenueCat令牌(v2 secret key)

媒体 · 1

服务连接方式
Cloudinary3 个字段:云名称、API 密钥、API secret

通信 · 3

服务连接方式
Resend令牌(Full access)
OneSignal2 个字段:应用 ID 和 应用 API 密钥
Twilio3 个字段:账户 SID、API 密钥 SID、API 密钥 secret
Backend Manager 的 服务 标签把同样这 33 个服务另行分组:托管 8 个、后端 6 个(Firebase、Supabase、Appwrite、Convex、PocketBase、Clerk)、数据 5 个(Neon、Turso、PlanetScale、MongoDB Atlas、Upstash)、可观测性 5 个、CI 3 个(GitHub、GitLab、Bitbucket)、媒体 1 个、支付 2 个和 消息 3 个。
支付、消息和媒体类服务在 PocketCode 中是只读的。Stripe、RevenueCat、Resend、OneSignal、Twilio 和 Cloudinary 只显示余额、扣款、投递或用量;你不能通过它们发送邮件、短信或推送通知,也不能转移资金。

平台服务屏幕

一个全屏列表。返回 或 Android 返回手势可以关闭它。

你可以

  • 用 搜索 33 个服务 按名称或描述搜索。无论哪种语言,描述都是英文,搜索也会匹配这些英文描述。
  • 最先看到 已连接:每个保存了凭据的服务,附带徽标、账户名、上次核对时间和一个健康标签:正常、待修复(上次核对失败,或密钥可读但不能写入;失败原因会替换副标题)或 核对中。
  • 当某个服务在最近一小时内用掉了服务商限额的 80 % 时,会出现琥珀色提示:<服务> 的请求量接近上限。打开查看剩余额度。 点它即可打开该服务。
  • 在带计数的类别标题下浏览目录的其余部分。每一行都写明了连接方式:API 密钥、访问令牌、2 个字段、使用验证码登录 或 使用 Railway 登录;当服务商无法限制密钥范围时,还会加上“· 整个账户”。
  • 点任意一行打开它的面板。搜索没有匹配项时会显示 未找到服务。

你不能

  • 在两个列表里同时看到同一个服务:已连接的服务,即使显示 待修复,也只出现在 已连接 下。目录里只保留未连接的服务。有意为之
  • 在没有生物识别或屏幕锁定的情况下,从设置打开该列表。设置会显示 请设置屏幕锁定或生物识别以访问 API 密钥。(文案写的是 API 密钥,尽管该行是已连接的服务)。设备
  • 截屏或录屏:该窗口被标记为安全窗口。有意为之

连接账户

点平台服务里该服务的一行,或 Backend 服务 标签里它的卡片;每个服务旁边并没有 连接 按钮。打开的面板各部分固定,顺序也固定。

连接面板由什么组成

  • 标题栏。 徽标、名称,以及一行形态摘要,例如 API 密钥 · 加密保存在本机、3 个字段 · 机密信息加密保存在本机 或 用 GitHub 登录 · 输入代码,无需令牌。
  • 最先出现的提示, 仅当 PocketCode 本想打开浏览器却做不到时才有:PocketCode 尚未为 <服务> 注册 OAuth 应用,因此无法通过浏览器登录。 之后才是令牌或字段。
  • 第 1 步:去哪里获取。 服务商的提示、警告或建议、权限标签,以及指向创建密钥页面的链接。
  • 第 2 步:交给 PocketCode。 字段、要输入的代码,或在浏览器中批准的说明。
  • 结果和一个主按钮。

粘贴令牌

  1. 1打开该服务。第 1 步 从 <服务> 获取密钥 会显示服务商的提示;当密钥无法限定到账户的一部分时显示警告,当服务商能签发只读密钥时显示建议;有权限清单的服务商还会显示 读取所需的最小权限 和 写入还需要 标签;以及 打开令牌页面,指向你创建密钥的页面。Convex、Turso、Healthchecks.io、Clerk 和 RevenueCat 没有直达链接:提示里会告诉你去哪里找密钥。
  2. 2在服务商那里按这些权限创建密钥。
  3. 3在第 2 步 粘贴到这里 中,点 粘贴,或直接粘贴到被遮蔽的字段里。一个按钮用来显示或隐藏该值,另一个用来复制它。
  4. 4PocketCode 会整理你粘贴的内容,并告诉你它做了什么:空格或换行、引号、开头的“Bearer”、一行 NAME=value(保留其中的值),或粘贴的 JSON 里的某个值,都会显示为 核对前已整理:…。它还会显示识别出的类型,例如 受限密钥、正式模式 或 细粒度令牌。
  5. 5点 连接并检查。PocketCode 用这把密钥调用服务商的 API,并显示结果。

填写简短表单

  1. 1打开该服务。第 1 步 在 <服务> 中找到它们 会告诉你每个值在哪里,并在服务商有对应页面时链接到其控制台。
  2. 2第 2 步 填写它们 每个值一个字段,带有易懂的名称和等宽字体的技术名称。字段格式看起来正确时,一条细进度条会逐步填满(读屏软件会播报为 2 / 3 个字段格式正确)。MongoDB Atlas 会先让你选择 Service account 或 API key。
  3. 3点 连接并检查。有些服务会在后台把这些字段合成一个凭据(Bitbucket、PlanetScale 等);你看到的始终是分开的字段。
  4. 4不使用 Google 登录的 Firebase 会显示同类表单,字段为 项目 ID、应用 ID 和 API 密钥,取自你自己的 google-services.json 或 Firebase 控制台,另有 打开 Firebase 控制台。它的按钮写的是 保存,因为这个表单不会向 Google 核对任何内容(你的 Firestore 规则仍可能拒绝读取)。清除 会清空三个字段。

用验证码登录(GitHub、GitLab)

  1. 1打开 GitHub 或 GitLab。第 1 步 GitHub 会给你一个代码 说明流程:无需复制令牌,你在浏览器里输入一个短代码,PocketCode 会自行完成。它会列出将请求的权限:GitHub 为 repo、read:user 和 user:email;GitLab 为 api、read_user 和 read_repository。
  2. 2点 向 GitHub 申请代码。代码会以大字显示,旁边是 复制代码。
  3. 3点 打开 GitHub,在打开的页面输入代码并批准。保持 PocketCode 打开:它会显示 正在等待你的批准…,并自动完成连接。
  4. 4随后出现结果。如果代码过期,重新申请一个。

在浏览器中登录(Railway、Firebase)

  1. 1打开 Railway 或 Firebase。第 1 步 Railway 会向你请求什么 列出 PocketCode 请求的权限;服务商在你批准之前会显示同样的清单。
  2. 2点 连接 Railway。Firebase 的按钮写的是 连接 Firebase,登录用的是你的 Google 账号。
  3. 3在浏览器中批准。PocketCode 会自动带你回来并显示结果。
  4. 4如果失败,重试 会重新登录一次。
  • Railway 请求只读的查看权限(workspace:viewer、project:viewer)。
  • Firebase 向 Google 请求只读访问(firebase.readonly、cloud-platform.read-only)。这是你自己的 Firebase 项目,不是 PocketCode 的,它为数据库模块里的 Firestore 浏览器提供数据。

检查结果

连接时,PocketCode 会向服务商发出一次真实调用,并以三个级别之一作答。

结果含义
可以使用当服务商告知你的用户名时显示 可以使用 · <名称>。PocketCode 能读取的内容全部可用。
可以使用,但无法写入密钥可以读取,但缺少写入权限:缺少:workflow。需要该权限的内容会显示为尚未读取。只有 GitHub 能判断这一点:它会报告令牌的权限范围,而 GitHub 的细粒度令牌不会,所以它们显示 可以使用。
该密钥无效,或 无法连接到 <服务>(验证码和浏览器)随后会给出服务商的真实原因。见“故障排查”。

该给密钥哪些权限

对于粘贴的令牌,面板会列出要勾选的权限,你不必猜测。十个服务列出了读取所需的最小权限,五个服务列出了写入还需要什么。

服务读取所需的最小权限写入还需要
GitHubrepo、read:user、user:emailworkflow
GitLabread_apiapi
Bitbucket—write:pipeline:bitbucket
Railwayworkspace:viewer、project:viewer—
CloudflareRead all resources 模板—
DigitalOceanapp:read、billing:read—
Sentryorg:read、project:read、event:read、alerts:readevent:write
PostHog13 个读取权限,从 user:read 和 project:read 到 query:read 和 survey:readfeature_flag:write、error_tracking:write、annotation:write
Axiomquery—
StripeBalance、Charges、PaymentIntents、Events(受限密钥)—
ResendFull 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 Manager33 个服务都在那里定义;每个服务显示什么,见 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 限制。
终端的云端导入面板(云服务)、工作流和 API 测试器不会读取这些凭据。SSH 密钥、工作流机密和已保存的数据库连接,各自有独立的加密存储。

免费版与 Pro

平台服务只有一道 Pro 门槛:同一服务商的第二个账户。你可以连接的服务数量没有上限。

功能免费版Pro
连接 33 个服务中的任意一个可以:每个服务商的第一个账户可以
同一服务商的多个账户(添加账户 · Pro)不可以:一把锁会打开订阅页面可以
在已连接的账户之间切换可以可以
立即核对、替换密钥、重新连接、断开可以可以
在 Backend Manager 中读取每个服务显示的内容可以可以
在手机上对服务商做破坏性更改(环境变量、DNS 记录、域名、扩缩容、暂停)不可以可以(Backend Manager 功能)
服务商处的可逆更改(在部署数量上限内重新部署、取消、启动和停止 Fly.io 机器、Sentry issue 操作、清除 Cloudflare 缓存)可以可以
设置中的订阅页面标题为 每个服务商多个账户。每个服务商的第一个账户仍然免费。价格以及免费版与 Pro 的其余对比: 套餐与价格

隐私与安全

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 连接。