连接服务连接器
数据与内容
可以连接到应用的数据库、电子表格、内容系统、文件存储和搜索服务:Supabase、Neon、Firebase、Airtable、Notion、Google Sheets、WordPress、Contentful、Storyblok、Webflow、AWS S3、Cloudinary 和 Algolia。
每个应用本来就有自己的数据库、登录和邮件:那就是云端。当数据已经存放在别处、你希望数据存放在你自己的账户里,或者应用需要云端做不到的功能(比如保存上传的文件)时,再连接下面这些服务。
本页每个服务各占一个条目。关于连接的通用方式(按钮或密钥、Test connection、选择哪些应用使用某个服务、权限),参见连接器。
| 服务 | 用途 | 连接方式 |
|---|---|---|
| Supabase | 用你自己的 Supabase 项目代替内置后端 | 项目地址和密钥 |
| Neon | 你自己的 Postgres,使用你自己的行规则 | Data API 地址 |
| Firebase | 来自你的 Firebase 项目的 Firestore 和登录 | Firebase 控制台中的三个值 |
| Airtable | 把表格用作数据库 | 一个按钮,或一个令牌 |
| Notion | 页面和数据库 | 一个按钮,或一个令牌 |
| Google Sheets | 把电子表格用作数据库 | 一个按钮,或一个 API 密钥 |
| WordPress | WordPress 网站的文章和页面 | 网站地址和应用密码 |
| Contentful | 来自无头 CMS 的条目 | Space ID 和交付令牌 |
| Storyblok | 来自无头 CMS 的故事 | 一个公开访问令牌 |
| Webflow | 来自 Webflow CMS 的集合 | 一个网站令牌 |
| AWS S3 | 用户上传的文件 | 区域、存储桶和访问密钥 |
| Cloudinary | 图片和文件,在交付时调整大小 | Cloud name、上传预设和密钥 |
| Algolia | 边输入边搜索 | Application ID 和两个密钥 |
下面几点对所有服务都适用:
- 机密密钥保存在 Setherion 的服务器上,你已发布的应用通过 Setherion 调用服务。只有本来就设计为公开的值才会到达浏览器:Supabase 的 anon 密钥、Firebase 的设置、Cloudinary 的 cloud name 和上传预设、Algolia 的只搜索密钥,以及 Google Sheets 的 API 密钥。
- 直接向你收费的服务,会在它们的页面上显示 Billed by 和服务名称,并要求你在连接之前接受。Neon、Firebase、Supabase、Airtable、Cloudinary、Algolia 和 AWS S3 属于这一类。Notion、Google Sheets、WordPress、Contentful、Storyblok 和 Webflow 显示 No usage charges。
- 已发布的应用通过 Setherion 发出的每个调用会消耗 1 个集成积分。参见积分。
- 这里除 Firebase 之外的每个服务都有 Test connection。
- 在团队工作区中,所有者可以把一些连接借给成员的应用使用(参见工作区)。Supabase、Neon 和 Firebase 永远不会借出,数值被内置到已发布应用中的服务也不会借出,这里指的是 Cloudinary、Algolia 和 Google Sheets。
数据库和表格
Supabase
用途。你自己的 Supabase 项目:它的数据库、登录和文件存储。它是可选的,因为每个应用本来就有后端。当你希望应用的数据放在属于你自己的项目里时再选择它。当某个应用开启了 Supabase,该应用会用它来存放数据、处理登录和保存文件,而不再使用内置后端。
连接。粘贴 Project URL(例如 https://abcdefgh.supabase.co)和 Anon Key,两者都在 Supabase 的 Project Settings 下的 API 中。anon 密钥以 eyJ 或 sb_publishable_ 开头,请使用 Supabase 的复制按钮,因为被截短的密钥会被拒绝。Service Role Key 是可选的,以 eyJ 或 sb_secret_ 开头。
创建数据表。点击 Connect Supabase account,在 Supabase 登录并批准。之后,在需要数据表的应用中,Manage 下的 Cloud 里有一个按钮,每次点击都会在你的项目中创建这些表。这项权限只保存在我们的服务器上。如果没有它,同样的 SQL 也在那里,你可以自己复制到 Supabase 中。账户连接之后,Your projects 列表还能让你点击 Use this project,而不必粘贴密钥。
可以这样要求。“把预订保存在我的 Supabase 里,并让客户用邮箱登录。”“添加一个商品表,包含名称、价格和照片。”
Neon
用途。把你在 Neon 上自己的 Postgres 用作应用的数据库。Setherion 通过 Neon 的 Data API 访问它,而由 Postgres 自己通过行级安全来决定谁能看到哪一行。这适合每个人只看自己那些行的应用、任何人都可以读取的目录,或者团队视图。
连接。粘贴来自 Neon 的 Data API address:在你的项目中,进入 Data API,找到以 /rest/v1 结尾的 REST 端点。它必须位于 neon.tech。然后点击 Test connection。在 Neon 被告知要信任 Setherion 之前,它会拒绝请求,结果里会给出 JWKS 地址,供你粘贴进去。
JWKS 这一步。在 Neon 中打开 Data API,再打开 Authentication,选择自定义提供方,并粘贴那个 JWKS 地址。受众(audience)留空。Neon 就是这样学会信任 Setherion 随每次调用发送的已登录用户的。如果几分钟后 Test 仍然说不行,请在 Neon 中删除这个提供方,然后重新添加。
可以这样要求。“在我的 Neon 数据库里为每位登录的用户保存一份待办清单。”“把 Neon 里的商品表显示为商店页面,并按类别筛选。”
权限。Permissions 下有三个开关:读取行、添加、修改和删除行,以及运行数据库函数。
需要了解。只有在你运行了 AI 为它们编写的 SQL(一个名为 neon/setup.sql 的文件)之后,这些表才会存在,只需在 Neon 的 SQL Editor 中运行一次。未登录的访客只能访问你授予 Neon 匿名角色的内容。
Firebase
用途。使用你自己的 Firebase 项目中的 Firestore 存放数据,用 Firebase Authentication 处理登录。Firebase 的其他功能都没有构建。
连接。三个值,来自你的项目在 Firebase console 中的网页应用设置:API Key(以 AIza 开头)、Project ID 和 App ID(例如 1:123:web:abc)。这三个值本来就设计为公开的,并且会进入已发布的应用。Firebase 没有 Test connection:Connect 会保存这些值。
可以这样要求。“让人们注册,并在 Firestore 里保存一份私人笔记清单。”“显示来自我的 Firebase 项目的实时消息列表。”
需要了解。在 Firebase 中,保护你的数据的不是密钥,而是安全规则。任何人都可以从已发布的应用中读出这些设置,所以处于测试模式的项目对整个互联网都是开放的。请在应用存储任何个人信息之前,先在 Firebase 控制台中设置 Firestore 规则。AI 编写每个文档时,会让它属于 Firebase Authentication 的某个用户 ID,并在应用存储个人数据时在屏幕上说明这一点。
Airtable
用途。把一个由行组成的表格用作应用的数据库:CRM、库存清单,或者你保存在 Airtable 里的内容。
连接。点击 Connect with Airtable,登录并勾选应用可以使用的 base,然后点击 Choose base 并选择一个。或者改用密钥:来自你的 Airtable 账户的 Personal Access Token(以 pat 开头),以及 Base ID(以 app 开头,显示在你的 base 的地址中)。
可以这样要求。“显示我在 Airtable 的 Products 表里的库存,带照片和价格。”“把联系表单收到的每条咨询添加为我的 Enquiries 表里的一个新行。”
限制。应用只能访问你选择的那一个 base,账户里的其他任何内容都访问不了,即使令牌的权限更大。名称中有空格的表会自动处理。Airtable 对较长的表一次只返回一页,应用会被告知要获取每一页,或者说明列表不完整。Test connection 会读取 base 的数据表,所以如果那个 base 没有被勾选,它就会失败。
页面和表格
Notion
用途。把 Notion 数据库用作轻量的内容系统或任务清单,也可以让应用显示或填写 Notion 页面。
连接。点击 Connect with Notion,登录并勾选应用可以使用的页面。应用随后可以读取和写入这些页面,其他任何内容都不行。或者使用令牌:在 notion.so/my-integrations 创建一个内部集成,并粘贴它的 Internal Integration Token(以 ntn_ 或 secret_ 开头),还可以填写可选的 Default Database ID。使用令牌时,要在 Notion 中把每个页面或数据库分享给这个集成,否则 Notion 对一切请求都会返回 404。
可以这样要求。“显示我的 Notion 数据库里的团队页面,带每个人的照片和职位。”“把每条表单消息添加为我的 Notion 任务里的一个新行。”
限制。一次查询最多返回 100 行,所以对于很长的数据库,应用会被告知要不断请求,直到 Notion 说没有更多了。
需要了解。构建你的应用的 AI 也可以通过 MCP 服务器读取你的 Notion,那是另一回事:参见添加你的 MCP 服务器。
Google Sheets
用途。把你编辑的电子表格用作应用的数据:价格、菜单、房源、团队成员,以及收集成行的注册信息。
用按钮连接。点击 Connect with Google,登录,然后点击 Choose spreadsheet 并选择那一个文件。这张表保持私有,应用通过 Setherion 读取和写入它,你 Drive 里的其余内容则无法被访问。
用密钥连接。粘贴一个已在 Google Cloud 中启用 Google Sheets API 的 Google API 密钥(限制为只能用于该 API 和你的网站),以及这张表的 ID。这种方式只适用于共享为“anyone with the link can view”的表格,而且只能读取。
可以这样要求。“显示我表格里的价格表,并在我编辑表格时更新它。”“把每个预订请求添加为我表格底部的一个新行。”
限制。使用按钮时,是一张电子表格以及其中的标签页。范围按标签页的名称来指定,所以如果你重命名了标签页,请在聊天中说明。
Notion、Airtable 和 Google Sheets 是由 Setherion 代表每一位打开你已发布应用的人去访问的。只连接应用本来就要显示或填写的内容。
来自 CMS 的内容
这四个服务读取你在别处写好的内容,并把它显示在你的应用里。四个都只读,而且只读已发布的内容:草稿永远不会出现在公开页面上。
WordPress
用途。在应用中显示 WordPress 网站已发布的文章、页面和媒体:博客、新闻页、作品集。
连接。Site address(必须以 https:// 开头)、Username 和 Application password。在 WordPress 中依次进入 Users、Profile、Application Passwords,再点击 Add New 来创建。WordPress.com 的免费套餐不提供应用密码。Test connection 会登录到该网站。
可以这样要求。“添加一个博客页面,列出我最新的 10 篇 WordPress 文章及其图片。”“根据 slug,让每篇文章显示在它自己的页面上。”
权限。文章、页面、图片和文件、分类、标签和评论各有一个 Read 开关。
需要了解。永远不会向网站写入任何内容。文章和页面按已发布的状态显示,评论按已批准的状态显示。文章正文以 HTML 的形式来自你自己的网站,所以应用会用它自己的字体排版来绘制。
Contentful
用途。在 Contentful 中写好的条目:文章、商品、页面、团队成员,不论你的内容类型是什么。
连接。Space ID(Settings,然后 General settings)和 Content Delivery API token(Settings,然后 API keys)。请使用交付令牌,而不是管理令牌。Environment 是可选的,留空时为 master。Test connection 会读取你的内容类型。
可以这样要求。“显示我在 Contentful 里的博客文章,最新的在前,带封面图。”“为每个商品条目建一个页面,通过它的 slug 找到。”
权限。条目、图片和文件、内容类型各有一个 Read 开关。
需要了解。字段名称来自你的内容模型,所以 AI 会先读取内容类型,而不是去猜。富文本字段以文档树的形式到达,由应用自己绘制。
Storyblok
用途。在 Storyblok 中写好的故事、页面和区块:博客、落地页、商品或团队成员列表。
连接。一个 Access token:在 Storyblok 中进入 Settings,再进入 Access tokens,选择 Public token。Region 是可选的:eu(默认)或 us,以你的空间设置中显示的为准。
可以这样要求。“列出 blog 文件夹下最新的故事。”“用 slug 为 about 的故事来构建关于页面。”
权限。故事、链接、数据源条目和标签各有一个 Read 开关。
需要了解。只会读取已发布的内容:Setherion 强制如此,所以误粘贴的预览令牌也无法把草稿放到公开页面上。一个故事是一棵区块树,应用会绘制你的空间用到的那些区块。
Webflow
用途。你在 Webflow CMS 中编写的集合:博客、团队、菜单、项目或地点。
连接。一个 Site API token。在 Webflow 中打开 Site settings,再打开 Apps & integrations,然后是 API access,生成一个令牌,并把 CMS 和 Sites 设为 Read-only。
可以这样要求。“显示我的 Webflow 集合里最新的博客文章。”“根据条目的 slug,为每位团队成员提供他们自己的页面。”
限制。只读取已发布的条目。它们来自 Webflow 的缓存,所以修改可能需要几分钟才会显示。用来查找你的网站及其集合的那些调用,会计入较小套餐每分钟 60 次的 Webflow 限制,所以应用会被告知把它们的结果保留一天,而不是每次访问都去请求。这个连接器没有权限开关。
文件、图片和搜索
AWS S3
用途。用户在你的应用中上传的文件(照片、文档、附件),保存在你自己的 S3 存储桶里。内置后端保存记录而不保存文件,所以上传的文件放在这里。
连接。四个值:Bucket region(例如 eu-west-2,这是伦敦)、Bucket name(小写字母、数字和连字符,不含点)、以及 Access key ID 和 Secret access key。它们来自 AWS:进入 IAM,再进入 Users,选择一个专门为 Setherion 创建的用户,然后是 Security credentials,再点击 Create access key。密钥只显示一次。Test connection 会读取存储桶,然后通过签名链接上传一个小的测试文件,再读回来、删除它,并检查你的存储桶是否允许浏览器上传。如果最后这项检查失败,请先查看存储桶的 CORS 设置。
可以这样要求。“让客户在他们的维修请求上附加一张照片。”“在订单页面上显示每个订单上传的文档。”
限制。
- 每个文件最大 25 MB。
- 每个应用在存储桶里都有自己的文件夹,即
apps/加上应用的 ID,Setherion 会拒绝这个文件夹之外的任何键。一个存储桶可以为你所有的应用服务,而不会让某个应用读到另一个应用的文件。 - 访客无法列出文件。文件通过它的键来访问,应用会把键和记录保存在一起,用来显示文件的链接有效期为一小时。
- 列出和删除某个应用的文件只限该应用的团队。上传和显示则对任何使用该应用的人开放。
权限。三个开关:上传文件、显示文件,以及列出和删除文件。
需要了解。编辑器预览中的文件选择器会上传到你真实的存储桶,和已发布的应用一样。
Cloudinary
用途。从应用中上传图片和文件,并通过 Cloudinary 的 CDN 按显示的尺寸交付它们。
连接。四个值:Cloud Name、一个 Unsigned Upload Preset、一个 API Key 和一个 API Secret。预设要在 Cloudinary 的 Settings 下的 Upload 中创建,类型选择 unsigned。密钥在 Settings 下的 API keys 中。没有预设就无法上传,应用会如实说明,而不会假装可以。
可以这样要求。“让卖家上传商品照片,并以合适的尺寸显示它们。”“添加一个图库页面,让访客可以发送图片。”
限制。浏览器使用预设直接上传到你的 Cloudinary。cloud name 和预设会进入已发布的应用,这正是 Cloudinary 的设计。API secret 则不会:Setherion 只在 Test connection 时使用密钥和 secret,所以应用里永远不会有任何机密。每一次上传和每一次查看都记在你的 Cloudinary 账户上。
需要了解。文件上传技能就是建立在这个连接器之上的:参见技能。
Algolia
用途。对商品、文章或你建立索引的任何条目进行即时的、边输入边搜索。
连接。三个值,来自 Algolia 控制台的 Account 下的 API keys:Application ID、Admin API Key 和 Search-Only API Key。
两个密钥。访客在浏览器中使用只搜索密钥进行搜索,它可以安全地公开,并会进入应用。管理密钥可以删除索引,所以它永远不会离开我们的服务器:应用只通过 Setherion 使用它来为记录建立索引。如果没有保存只搜索密钥,搜索就无法运行,应用会如实说明,而不会退而使用管理密钥。删除记录或索引、清空索引,或把一个索引移动覆盖到另一个上,只对你的团队开放;添加和更新记录对任何使用应用的人都可用。
可以这样要求。“给商店添加一个搜索框,在我输入时就能找到商品。”“每当我添加一个商品,就把它收录到 Algolia 的索引里。”
需要了解。搜索技能就是建立在这个连接器之上的:参见技能。
这个页面对你有帮助吗?
