当你读到这些文字时,OpenAI刚刚打开了大门。昨天——真的就是昨天——他们为ChatGPT启动了App Directory,并向所有开发者开放了提交。不只是选定的合作伙伴。是所有人。包括你。

ChatGPT Apps:2025年开发者完整指南 - 1

8亿用户。几乎没有竞争。机会之窗现在就开着。几个月后当所有人涌入时,窗口就会关闭。

这不是又一篇"看看你有一天可以做什么"的文章。这是给那些想要现在就抓住机会的人的指南,趁着市场还空荡荡的。


还记得2008年App Store开放时,所有人都在想"谁需要手机上的应用程序?"然后Angry Birds赚了10亿美元,Instagram以10亿卖给Facebook,Uber成长到800亿。最早进入的开发者一夜暴富,仅仅因为他们是第一批。

现在是2025年12月。完全相同的事情正在发生。只不过这次叫做ChatGPT Apps

ChatGPT Apps:2025年开发者完整指南 - 2

10月6日OpenAI推出了新平台——你知道启动时有多少用户吗?8亿。不是2008年iPhone的1000万。八亿。App Store启动时小了80倍。明白了吗?

现在有多少竞争对手?截至12月18日——不到20个应用。Spotify、Booking.com、Canva、Zillow、AllTrails,几个企业工具。就这些。真的就这些。市场完全空白。昨天OpenAI向所有开发者开放了提交——包括你。

我没开玩笑。你在ChatGPT里输入:"Spotify,创建一个跑步播放列表"——聊天界面里直接打开Spotify小部件。有歌曲、按钮,一切都能用。不用切换标签页,不用复制粘贴。神奇。

ChatGPT Apps:2025年开发者完整指南 - 3

或者:"Booking,找巴黎100欧以下的酒店"——砰,地图、选项、照片都出来了,可以立即预订。

ChatGPT Apps:2025年开发者完整指南 - 4

你也可以创建同样类型的应用。

让我来告诉你怎么做。

为什么这不只是另一个"新功能"

听着,我理解。所有人都对"哇,新技术将改变世界"这类新闻产生了免疫力。每周都有新东西。加密货币、NFT、元宇宙、下周就来的AGI。厌倦炒作了?我也是。

但这次不同。看看数据。

2008年的App Store:

  • 启动时1000万iPhone用户
  • 要开发应用,你需要Mac(至少1000美元)和测试设备
  • 竞争从零开始,但六个月后有数千个应用
  • 你必须学习Objective-C(对,那个带方括号的噩梦)

结果呢?Instagram卖了10亿,Angry Birds有10亿次下载,Uber现在值800多亿。

ChatGPT Apps:2025年开发者完整指南 - 5

最早进入的人——只是赶上了时机。他们在没有竞争的时候就在那里。

现在的ChatGPT Apps:

  • 每周8亿活跃用户
  • 开发——普通笔记本电脑,任何操作系统,免费工具
  • 不到20个竞争对手(12月17日向所有人开放提交!)
  • 技术栈——TypeScript或Python,你已经会的

数学很简单:受众大80倍,竞争对手少几百倍,进入门槛低几倍。

这不是炒作。这是昨天(12月17日)打开的机会之窗,2-3个月后当所有人涌入时会关闭。第一批通过审核的应用将在2026年1月开始出现在目录中。现在那里几乎没人。

这些ChatGPT Apps到底是什么(不废话)

好的,先跳过技术术语。用大白话说。

以前是这样:你在ChatGPT里,想做点什么——比如订酒店。ChatGPT给你建议,然后你复制酒店名字,在新标签页打开Booking.com,搜索,预订。一大堆窗口切换。很烦。

现在是这样:你在ChatGPT输入"Booking,找马德里周末80欧以下的酒店",聊天界面里直接出现——地图、选项列表、照片、价格,可以点击预订。全在那里。不用标签页。

看起来是个小细节?嗯,苹果当时也看起来是个小细节——"有按钮为什么要触摸屏?"然后诺基亚死了。

ChatGPT Apps不是:

马上说清楚,免得搞混(我一开始也搞混了)。

不是Custom GPTs。Custom GPTs只是带指令的聊天机器人。你告诉它"像海盗一样回答"——它就像海盗一样回答。就这样。没有小部件,没有交互性。

不是ChatGPT Plugins。OpenAI在2024年4月关闭了Plugins。它们慢、笨拙、运行不佳。埋了,理所应当。

不是使用ChatGPT API。API是你做自己的应用,在里面使用ChatGPT。完全不同的故事。

那是什么?

ChatGPT Apps是ChatGPT内部的完整应用程序。有界面、按钮、卡片、地图、视频——你想要什么都行。你创建后端(TypeScript或Python),做UI(普通HTML/CSS/JS),ChatGPT直接在聊天中渲染。

工作流程示例(一步步):

ChatGPT Apps:2025年开发者完整指南 - 6
  1. 用户:"Zillow,给我看纽约50万美元以下的房子"
  2. ChatGPT理解:需要调用Zillow应用
  3. 向你的服务器发送请求(这叫MCP服务器,稍后详述)
  4. 你的服务器:搜索房子,组织响应 + 小部件的HTML
  5. ChatGPT接收数据并显示小部件,有地图、照片、描述
  6. 用户点击房子 → 看到详情
  7. 说:"去掉40万美元以上的" → 列表更新
  8. 找到需要的 → 点击"在Zillow打开" → 网站打开

整个魔法在于这发生时没有切换上下文。与ChatGPT的对话不中断。你只是说你想要什么,一切就出现在那里。

为什么需要这个?

合理的问题。这里有个真实用例:

以前:我想在参观博物馆后订餐厅。

  1. 打开博物馆网站,查看开放时间
  2. 谷歌附近的餐厅
  3. 选一个,打开OpenTable
  4. 预订
  5. 添加日历提醒

现在:"ChatGPT,在普拉多博物馆闭馆后预订附近的餐厅。"

  • ChatGPT找出闭馆时间
  • 找附近的餐厅
  • 提供选项(有地图、菜单、评论)
  • 预订桌子
  • 添加到日历

一句话代替五个步骤。

这就是为什么我们需要它。

开发者争相进入的三个原因

1. 即时获得受众(不公平,但有效)

创业公司的常规路径:

  • 想法 → MVP → 启动
  • 建站,配置分析
  • SEO(等待几个月)
  • 付费广告(钱,钱,钱)
  • 冷电话,邮件
  • 一年后:1000个用户(如果你幸运)

用ChatGPT Apps:

你做应用。发布到Store。用户写"给我找意大利面carbonara的食谱"——如果你有食谱应用,ChatGPT自己推荐你的应用

不是你找用户。ChatGPT把他们带给你。

就像拥有世界上最好的销售经理,24/7免费工作,认识所有8亿用户。

现在想象你有三个竞争对手。不是三千个。三个。在某些细分市场可能根本没人。

2. 不需要从头构建UI(但应该研究指南)

你知道在应用中做一个像样的UI要多长时间吗?几个月。响应式、浏览器兼容性、主题(明暗)、可访问性。加上单独的iOS版本、单独的Android版本。工作量巨大。

用ChatGPT Apps——ChatGPT为你渲染UI。你提供HTML模板,它集成到界面中。主题?自动。响应式?自动。iOS/Android?到处都能用,这是网页。

但有个陷阱:OpenAI提供了清晰的设计指南。这不是"做你想做的"。有关于小部件大小、配色方案、排版、间距的建议。一切都清楚地记录在案。

好消息:遵循这些指南比从头创建设计系统更容易。OpenAI已经考虑了一致性、可访问性、UX模式。你只需应用他们的标准。

你专注于逻辑、数据、让应用有用的东西。不是让按钮在不同设备上看起来一样。

3. 先行者优势(窗口现在就开着)

仔细听,因为这是文章最重要的部分。

2025年12月17日——昨天——OpenAI启动了App Directory并向所有开发者开放提交。不是合作伙伴,不是企业。是所有人。你现在可以去platform.openai.com提交应用审核。

现在有什么:

  • Spotify、Booking.com、Expedia(旅行)
  • Canva、Figma(设计)
  • Zillow(房地产)
  • Coursera(教育)
  • AllTrails、Coupler、Daloopa、Coveo、Egnyte、Hex(企业工具)

数数。8亿用户,不到20个应用。App Directory目录实际上是空的。Featured部分是空的。推荐算法刚开始调整。

ChatGPT Apps:2025年开发者完整指南 - 7

第一批通过审核的应用将在2026年1月开始出现。这意味着你有2-3周时间做一个高质量的应用并提交审核。有机会成为第一波。

到2026年夏天将有:

  • 数千名开发者
  • 数百个创业公司
  • 大量模仿者
  • Featured位置的激烈竞争
  • 在数千个应用上训练过的推荐算法

但别担心。这并不意味着夏天就太晚了。ChatGPT Apps不是一年后会消失的炒作功能。这是一个基础平台,会一直存在。

类比:App Store在2008年推出,成功的新应用今天仍在出现。TikTok在2018年爆发市场——商店推出10年后。Clubhouse在2020年值数十亿。

ChatGPT Apps将在未来几年增长和演变。只是那些在第一波进入的——在接下来的2-3个月——将获得最大好处:更少的竞争对手,更多的关注,排名第一位置,先驱声誉,Featured的机会。

你也可以六个月后进入。但现在是风险最小、回报最大的机会窗口。目录是空的。提交开放了。竞争几乎不存在。

一个月后会有数百份提交。三个月后——数千份。但现在你可以成为前二十名之一。

技术上如何工作(不用术语)

好的,营销够了。进入正题——它在底层是如何构建的。

ChatGPT Apps:2025年开发者完整指南 - 8

简单图示

用户 
    ↓ 写提示词
ChatGPT UI(你看到的)
    ↓ 理解需要什么工具
Apps SDK Runtime(引擎)
    ↓ 发送请求
你的MCP服务器(你的代码)
    ↓ 处理,调用API
你的数据库/外部服务
    ↓ 返回数据
Widget(iframe中的HTML/CSS/JS)
    ↓ 显示
用户看到结果

实际上,一个请求是这样的:

用户:"Spotify,创建早晨跑步播放列表"

  1. ChatGPT:好的,这是关于音乐的,需要Spotify的create_playlist工具
  2. ChatGPT → 你的服务器:POST请求,参数{theme: "morning_run", duration: 30}
  3. 你的服务器:

- 收到请求

- 调用Spotify API

- 编译歌曲列表

- 形成响应 + 小部件的HTML

  1. 你的服务器 → ChatGPT:这是你的数据 + UI模板
  2. ChatGPT:在iframe中渲染小部件(受保护的沙箱)
  3. Widget:通过window.openai API接收数据
  4. 用户:看到播放列表,可以听、编辑

整个过程需要几秒钟。

MCP协议——是什么,为什么

MCP = Model Context Protocol(模型上下文协议)。这是连接AI与外部工具和数据的开放标准。

简史:

  • 2024年11月 → Anthropic(Claude的创造者)宣布MCP
  • 2025年3月 → OpenAI说"是的,我们也这么做"
  • 2025年12月 → MCP移交给Linux基金会

现在是共同标准。构建一次MCP服务器——可以与ChatGPT、Claude、VS Code、任何AI客户端一起工作。

类比:还记得以前每个手机都有自己的充电器吗?诺基亚一个,三星另一个,iPhone第三个。真烦人。然后他们发明了USB-C——所有人用一个接口。

MCP是AI应用的USB-C。

MCP的三大支柱

MCP由三个原语组成。听起来吓人,但实际上很简单:

1. Tools(工具)

这些是AI可以调用的函数。例如:

  • search_products — 搜索产品
  • book_hotel — 预订酒店
  • create_playlist — 创建播放列表
  • get_weather — 获取天气

你注册一个工具,描述参数(需要传什么),ChatGPT自动理解何时调用它。

2. Resources(资源)

这些是数据源或UI模板。例如:

  • 带小部件的HTML文件
  • 用户数据的JSON
  • 图片、视频

你控制Resources,不是AI。你决定返回什么以及什么格式。

3. Prompts(提示词)

常见任务的可重用模板。如果你有标准场景,可以描述一次,用户会更快使用。

说实话?Prompts很少使用。Tools和Resources——这才重要。

安全性呢?

小部件在沙箱iframe中运行——隔离的环境。它们不能:

  • 读取其他网站的cookies
  • 在ChatGPT上下文中执行任意JavaScript
  • 访问其他用户的数据

所有请求通过HTTPS。传输中的数据用TLS 1.2+加密。存储——AES-256。OpenAI通过了SOC 2 Type 2审计,符合GDPR/CCPA。

简而言之,安全性很可靠。不需要重新发明轮子。

构建你的第一个应用(现在)

理论够了。让我们做一个真正的应用。现在。20-30分钟内。

我们要构建什么:待办事项列表。是的,我知道,这是陈词滥调。但它简单明了。做个todo——理解原理——然后如果你想的话可以建造宇宙飞船。

你需要什么

  • Node.js(可能已经安装了)
  • 任何代码编辑器
  • 终端
  • ngrok(用于公共URL)

一切免费,一切可用。

步骤1:创建项目

mkdir my-first-chatgpt-app
cd my-first-chatgpt-app
npm init -y
npm install @modelcontextprotocol/sdk

package.json应该像这样:

{
  "type": "module",
  "dependencies": {
    "@modelcontextprotocol/sdk": "^1.20.2"
  }
}

> 注意:在示例中,我们直接使用JSON Schema验证参数。如果你想要更强大的验证,可以添加zod并在工具处理程序中使用。

步骤2:编写MCP服务器

创建文件server.js

import { createServer } from "node:http";
import { readFileSync } from "node:fs";
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";

// 带小部件的HTML(下一步创建)
const widgetHtml = readFileSync("widget.html", "utf8");

// 我们的任务"存储"(实际上会是数据库)
let todos = [];
let nextId = 1;

function createTodoServer() {
  const server = new McpServer({ 
    name: "my-todo-app", 
    version: "1.0.0" 
  });

  // 将小部件UI注册为Resource
  server.registerResource(
    "todo-widget",
    "ui://widget/todo.html",
    {},
    async () => ({
      contents: [{
        uri: "ui://widget/todo.html",
        mimeType: "text/html+skybridge",  // 重要!没有这个不会工作
        text: widgetHtml,
        _meta: { 
          "openai/widgetPrefersBorder": true  // 小部件周围的边框
        },
      }],
    })
  );

  // 注册添加任务的Tool
  server.registerTool(
    "add_todo",
    {
      title: "添加任务",
      description: "向列表添加新任务",
      inputSchema: {
        type: "object",
        properties: {
          title: {
            type: "string",
            description: "任务标题"
          }
        },
        required: ["title"]
      },
      _meta: {
        "openai/outputTemplate": "ui://widget/todo.html",  // 显示哪个小部件
        "openai/toolInvocation/invoking": "正在添加任务...",  // 加载时的文本
        "openai/toolInvocation/invoked": "任务已添加 ✓",  // 完成时的文本
      },
    },
    async ({ title }) => {
      // 创建任务
      const todo = { 
        id: `todo-${nextId++}`, 
        title, 
        completed: false 
      };
      todos.push(todo);

      // 返回结果
      return {
        // ChatGPT的文本(在聊天中显示什么)
        content: [{ 
          type: "text", 
          text: `✅ 已添加:"${title}"` 
        }],
        // 小部件的数据
        structuredContent: { 
          tasks: todos 
        },
      };
    }
  );

  return server;
}

// 带CORS的HTTP服务器(必需!)
const port = 8787;
const httpServer = createServer(async (req, res) => {
  const url = new URL(req.url, `http://${req.headers.host}`);

  // CORS预检(ChatGPT首先发送OPTIONS请求)
  if (req.method === "OPTIONS" && url.pathname === "/mcp") {
    res.writeHead(204, {
      "Access-Control-Allow-Origin": "*",
      "Access-Control-Allow-Methods": "POST, GET, OPTIONS",
      "Access-Control-Allow-Headers": "content-type, mcp-session-id",
      "Access-Control-Expose-Headers": "Mcp-Session-Id",
    });
    res.end();
    return;
  }

  // 健康检查(验证服务器是否运行)
  if (req.method === "GET" && url.pathname === "/") {
    res.writeHead(200).end("✅ MCP服务器运行中");
    return;
  }

  // MCP端点(ChatGPT会在这里调用)
  if (url.pathname === "/mcp") {
    res.setHeader("Access-Control-Allow-Origin", "*");
    res.setHeader("Access-Control-Expose-Headers", "Mcp-Session-Id");

    const server = createTodoServer();
    const transport = new StreamableHTTPServerTransport({
      sessionIdGenerator: undefined,
      enableJsonResponse: true,
    });

    // 连接关闭时清理
    res.on("close", () => {
      transport.close();
      server.close();
    });

    await server.connect(transport);
    await transport.handleRequest(req, res);
    return;
  }

  res.writeHead(404).end("Not Found");
});

httpServer.listen(port, () => {
  console.log(`🚀 服务器运行中:http://localhost:${port}/mcp`);
});

看起来复杂?实际上有三个部分:

  1. 注册小部件(UI)
  2. 注册工具(它能做什么)
  3. HTTP服务器(让ChatGPT能够访问我们)

步骤3:制作小部件

创建widget.html

<!DOCTYPE html>
<html lang="zh">
<head>
  <meta charset="utf-8" />
  <title>待办小部件</title>
  <style>
    * { box-sizing: border-box; }
    body { 
      margin: 0; 
      padding: 20px; 
      font-family: -apple-system, BlinkMacSystemFont, sans-serif;
      background: var(--bg, #f8f9fa);
    }
    .task-list { 
      display: flex; 
      flex-direction: column; 
      gap: 10px; 
    }
    .task { 
      padding: 15px; 
      border-radius: 8px; 
      background: white;
      box-shadow: 0 2px 4px rgba(0,0,0,0.1);
      display: flex;
      align-items: center;
      gap: 10px;
    }
    .task:hover { 
      box-shadow: 0 4px 8px rgba(0,0,0,0.15);
    }
    .task.completed { 
      opacity: 0.5; 
      text-decoration: line-through; 
    }
    .empty {
      text-align: center;
      padding: 40px;
      color: #999;
      font-style: italic;
    }
  </style>
</head>
<body>
  <div id="root"></div>
  
  <script type="module">
    // 从ChatGPT获取数据
    const toolOutput = window.openai?.toolOutput;
    const theme = window.openai?.theme;
    
    // 如果是深色主题,改变背景
    if (theme === 'dark') {
      document.documentElement.style.setProperty('--bg', '#1a1a1a');
    }
    
    // 渲染任务列表
    function render(tasks) {
      const root = document.getElementById('root');
      
      if (!tasks || tasks.length === 0) {
        root.innerHTML = '<div class="empty">📝 还没有任务。添加你的第一个!</div>';
        return;
      }
      
      root.innerHTML = `
        <div class="task-list">
          ${tasks.map(task => `
            <div class="task ${task.completed ? 'completed' : ''}">
              <span>${task.title}</span>
            </div>
          `).join('')}
        </div>
      `;
    }
    
    // 首次渲染
    render(toolOutput?.tasks || []);
    
    // 监听更新(当ChatGPT更新数据时)
    window.addEventListener("openai:set_globals", (event) => {
      const newTasks = event.detail?.globals?.toolOutput?.tasks;
      if (newTasks) render(newTasks);
    });
  </script>
</body>
</html>

这是普通HTML。魔法在window.openai——ChatGPT就是这样传递数据给我们的。

步骤4:本地运行

打开两个终端。

终端1(启动服务器):

node server.js

你会看到:🚀 服务器运行中:http://localhost:8787/mcp

终端2(公共隧道):

ngrok http 8787

ngrok会给你一个公共URL,类似https://abc123.ngrok.app。复制它。

步骤5:连接到ChatGPT

  1. 打开ChatGPT
  2. Settings → Apps & Connectors → Advanced settings
  3. 启用Developer Mode(需要Plus或Pro)
  4. 点击Create Connector
  5. 输入URL:https://你的ngrok-url.ngrok.app/mcp
  6. 保存

步骤6:测试!

打开新聊天并输入:

添加任务:买牛奶

如果一切正常——你会看到一个带任务的小部件!

再试试:

添加任务:去健身房
添加任务:给妈妈打电话

直接在聊天中看到任务列表了吗?恭喜,你刚创建了第一个ChatGPT应用!🎉

接下来呢?

这是最基本的例子。接下来你可以:

  • 添加删除任务功能
  • 做复选框标记为完成
  • 连接真实数据库(PostgreSQL、MongoDB)
  • 添加OAuth授权
  • 部署到Vercel(免费)

但你理解原理了。其余的是细节。

高级功能(当基础变得无聊时)

好的,你做了待办列表。现在想要更严肃的东西。这里还有什么可以做:

OAuth授权

如果你的应用处理用户个人数据(如Spotify播放列表或Google Drive),你需要授权。

ChatGPT支持带PKCE的OAuth 2.1。听起来吓人,但运作简单:

  1. 用户第一次调用你的应用
  2. ChatGPT显示"连接账户"
  3. 重定向到你的授权服务器
  4. 用户授予访问权限
  5. 你的服务器返回token
  6. ChatGPT保存token并在每次请求时发送

在代码中看起来像这样:

server.registerTool(
  "get_user_playlists",
  {
    title: "获取播放列表",
    _meta: {
      "openai/auth": [{ type: "oauth2" }]  // 需要授权
    }
  },
  async (args, context) => {
    // 检查token
    const token = context.headers?.authorization?.replace('Bearer ', '');
    
    if (!token) {
      return {
        error: "Unauthorized",
        _meta: { 
          "mcp/www_authenticate": { error: "invalid_token" } 
        }
      };
    }
    
    // 获取数据
    const playlists = await fetchSpotifyPlaylists(token);
    return { content: [{ type: "text", text: JSON.stringify(playlists) }] };
  }
);

配置认证服务器的细节是单独的主题。简而言之:你需要/authorize端点、/token端点和服务器元数据。阅读文档,那里有解释。

全屏小部件

有时聊天中的小部件太小。比如地图。你需要全屏。

// 在小部件中
await window.openai.requestDisplayMode({ mode: "fullscreen" });

有三种模式:

  • inline — 聊天中的普通小部件(默认)
  • fullscreen — 全屏(用于地图、图表)
  • pip(画中画)— 浮动窗口(用于视频、音乐)

通过window.openai.requestDisplayMode()切换。

Agentic Commerce Protocol (ACP) — 直接在ChatGPT中销售

想通过ChatGPT销售产品?OpenAI和Stripe创建了一个开放标准——ACP。

如何运作:

  1. 你有产品(JSON/CSV/XML格式的Product Feed)
  2. 用户:"ChatGPT,给我订一双Nike Air Max,42码"
  3. ChatGPT在你的feed中找到产品
  4. 显示产品卡(照片、价格、描述)
  5. 用户:"购买"
  6. Instant Checkout — 通过你的Payment Provider付款(Stripe/PayPal)
  7. 你收到关于购买的webhook
  8. 你发货产品

佣金:OpenAI从销售中抽取小部分百分比(确切数字未公开)。

谁已经在做:Instacart(完整的Instant Checkout),100万+Shopify商家。

这真的有效。人们直接在聊天中购买,不用去网站。


部署:进入生产环境

一切在本地运行,但用户需要稳定的服务器。ngrok会在一小时后挂掉——不是选项。

选项1:Vercel(最简单)

Vercel官方支持ChatGPT Apps。有免费tier,足够开始。

npm i -g vercel
vercel login
vercel

就这样。Vercel会配置HTTPS、配置CDN、给你稳定的URL。

Vercel的现成模板:

vercel.com/templates/next.js/chatgpt-app-with-next-js

选项2:Railway / Fly.io / Render

如果你需要更多控制(自己的Docker、自己的环境变量等):

Railway:

railway login
railway link
railway up

Fly.io:

fly launch
fly deploy

这三个平台开始都是免费的,然后为资源付费。便宜。

生产检查清单

启动前检查:

HTTPS — 必需,否则ChatGPT不会连接

CORS — 允许https://chatgpt.com

健康检查/应该返回200

速率限制 — 不被DDoS

环境变量 — 代码中没有秘密

日志记录 — 理解什么坏了

监控 — 正常运行时间、延迟、错误

Express的最小CORS:

app.use((req, res, next) => {
  res.header('Access-Control-Allow-Origin', '*');
  res.header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
  res.header('Access-Control-Allow-Headers', 'content-type, mcp-session-id');
  next();
});

这足够开始了。

ChatGPT App Directory:提交现在开放

最常见的问题是:"我们什么时候能发布?"

答案:已经可以了。2025年12月17日OpenAI向所有开发者开放了提交。

2025年12月18日的状态:

App Directory已启动https://chatgpt.com/apps

提交已开放 — 通过platform.openai.com

Apps SDK处于BETA — 任何开发者都可以使用

第一批批准的应用 — 将在2026年1月开始出现

谁已经在那里:

  • Spotify — 播放列表、推荐
  • Booking.com、Expedia — 旅行
  • Canva、Figma — 设计和演示
  • Zillow — 美国房地产
  • Coursera — 教育课程
  • AllTrails — 步道和路线
  • Coupler、Daloopa、Coveo、Egnyte、Hex — 企业工具

总共不到20个应用。就这些。目录几乎是空的。

如何提交你的应用(一步步)

步骤1:准备你的应用

提交前确保:

  • 应用在Developer Mode中测试过
  • 服务器在HTTPS上运行(必需!)
  • 遵循App Submission Guidelines
  • 有Privacy Policy和Terms of Service
  • UI遵守OpenAI指南

步骤2:前往OpenAI Developer Platform

访问platform.openai.com → "ChatGPT Apps"部分 → "Submit App"。

步骤3:填写提交表单

你需要提供:

应用信息:

  • 应用名称(独特、清晰)
  • 描述(它做什么,对谁有用)
  • 类别(productivity、travel、education、entertainment等)
  • 目录的图标和横幅(PNG,特定尺寸)

MCP详情:

  • 你的MCP服务器URL(必须通过HTTPS访问)
  • 服务器提供的工具列表
  • 认证设置(如果需要OAuth)
  • 小部件端点

测试指南:

  • 审核者的测试场景(如何验证一切正常)
  • 触发你的应用的示例提示
  • 预期行为

截图/UI预览:

  • ChatGPT中小部件的截图
  • 主要功能演示
  • 显示应用在明暗主题中的外观

国家/地区可用性:

  • 应用将在哪些国家可用
  • 地区限制(如果有)

Privacy Policy:

  • 所有应用必需
  • 你收集什么数据,如何使用,如何存储
  • 完整政策文本的链接

发布说明:

  • 此版本的新内容
  • 已知限制或bug
  • 未来计划(可选)

步骤4:提交审核

点击"Submit"。OpenAI开始检查:

  • 技术审查(服务器是否工作,是否有bug)
  • 安全审查(是否有漏洞,数据是否正确处理)
  • 政策审查(是否符合Usage Policies)
  • UX审查(是否便于使用)

审查时间线:几天到几周(取决于复杂性)。

步骤5:收到回复

要么批准 — 恭喜,应用进入目录!

要么要求更改 — 需要修复问题并重新提交。

批准后,你的应用出现在App Directory中,8亿用户可以找到它。

批准要求

通过审核,应用必须:

✅ 符合OpenAI的Usage Policies

✅ 适合所有受众(无成人内容、暴力、仇恨言论)

✅ 只请求必要数据(最小权限原则)

✅ 有工作的HTTPS端点(HTTP不会工作)

✅ 提供清晰的Privacy Policy

✅ 遵循UI Guidelines(设计一致性、可访问性)

不违反第三方服务的Terms of Service(如果与它们集成)

自动拒绝如果:

  • 没有HTTPS
  • 没有Privacy Policy
  • 请求功能不需要的数据(例如位置,如果你不使用)
  • UI不响应或损坏
  • 应用崩溃有错误

批准后做什么

你的应用出现在目录中 — 用户可以通过搜索或Featured部分找到它。

用户如何找到你:

  1. 目录搜索 — 按关键词搜索
  2. @提及 — 在聊天中输入@你的应用 做某事
  3. 推荐 — ChatGPT自己在看到相关查询时推荐你的应用
  4. Featured — 最好的应用进入推荐

深层链接:

你可以分享直接链接到你的应用:

https://chatgpt.com/apps/你的应用

发到社交媒体、网站、新闻通讯——人们点击并直接进入ChatGPT中的你的应用。

  • 支持联系方式
  • 安全认证(如果处理金钱)

货币化 — 真的能赚钱吗?

百万(字面意思)的问题。

收入选项:

方法如何运作状态
Instant CheckoutOpenAI从销售中抽取%✅ 运作中
Subscription用户为应用付费🔜 即将推出
Freemium基础版免费,Pro付费🔜 2026
Ads广告模式❓ 不清楚

Instant Checkout已经运作。Instacart直接在ChatGPT中销售食品杂货,OpenAI收取佣金(大小未披露,但他们说"合理")。

Subscription将在2026年Q1-Q2推出。像App Store一样——用户为应用付费,OpenAI拿~30%(可能)。

你能赚多少?

没人知道。Store还没开,没有统计数据。但我们可以看看App Store:

  • 前1%的应用:每月$10K-100K+
  • 前10%:每月$1K-10K
  • 其余:每月$0-1K

ChatGPT Apps潜力更大,因为:

  1. AI自己推荐应用(免费发现)
  2. 转化率更高(一切在聊天中,无切换)
  3. Instant Checkout减少摩擦

但目前——不确定。第一批将实验。


这适合谁(诚实对话)

不是每个人都应该冲向ChatGPT Apps。坦诚点。

✅ 这适合你如果:

  • 你会用TypeScript或Python编程
  • 你理解REST API、HTTP、JSON
  • 你有面向广泛受众的应用想法
  • 你准备学习和实验
  • 你不怕变化(SDK在preview,一切都在演变)
  • 你想在一个新行业的开始就进入

❌ 不要开始如果:

  • 你是编程的完全初学者(先学基础!)
  • 你期望没有工作就有即时利润
  • 你现在需要稳定收入(目前只能链接到你的网站购买)
  • 你做狭窄的B2B产品(ChatGPT是面向大众市场的)
  • 你没准备好技术变化

AI开发者的真实薪资

如果你不创建自己的应用而是在公司工作:

美国(2025):

  • Junior AI Developer:$95K-$130K/年
  • Mid AI Engineer:$161K-$220K/年
  • Senior AI Engineer:$301K-$440K/年
  • AI Research Scientist:$500K-$893K/年

按地区远程工作:

  • 西欧:€60K-€120K/年
  • 东欧:$35K-$80K/年
  • 印度:$15K-$45K/年
  • 中国:$25K-$70K/年
  • 南美:$30K-$65K/年

自由职业(全球):$35-$116/小时(平均$65-75)

来源:levels.fyi、Glassdoor、AngelList(2025年12月)

AI开发者需求每年增长10-20%。会继续增长。


创建ChatGPT Apps的真实挑战

ChatGPT Apps:2025年开发者完整指南 - 9

好的,整篇文章我都在告诉你这有多酷多简单。但坦诚点——不是一切都顺利

开发者面临真实的挑战:

1. 范式转变

这是最难的部分。你习惯写普通应用:用户点击按钮 → 代码执行 → 结果显示。一切可预测。

ChatGPT Apps不同:

  • AI决定何时调用你的工具
  • 用户用自然语言说话,不点击UI
  • 你的应用是AI手中的工具,不是直接逻辑

你必须学会像AI工程师一样思考,而不是像经典web开发者。这就像从过程式编程转向函数式——技术看起来熟悉,但方法不同。

2. MCP协议 — 新标准

MCP刚出现,文档少,最佳实践还在形成。你不能谷歌"如何在MCP中做X"——Stack Overflow是空的。

你必须阅读官方文档(有时不完整)、研究OpenAI的例子、实验。

3. 调试比普通web应用更难

在普通应用中你看到请求 → 查看日志 → 理解什么坏了。

在ChatGPT Apps中:

  • AI可能误解提示
  • 工具可能在你不期望时被调用
  • 小部件在沙箱iframe中渲染 — DevTools不总是有帮助
  • 错误可能在三个层次:AI、MCP传输、你的代码

你需要新的调试技能。

4. OAuth和安全 — 高责任

如果你的应用处理个人数据,你需要OAuth。但这不只是"安装库就能用"。

你必须:

  • 配置授权服务器
  • 实现PKCE流程
  • 每次请求验证token
  • 确保秘密的安全存储
  • 通过OpenAI的安全审查

一个错误——用户数据泄漏。认真的。

5. 生产部署 — 不只是"上传到主机"

HTTPS是必需的。需要CORS。SSE/Streaming HTTP必须工作。健康检查。速率限制。监控。日志记录而不泄漏敏感数据。

对于初级开发者这可能是压倒性的。

6. 与大玩家竞争

当Store开放时,不只是独立开发者会进入。Spotify、Booking、Canva——这些是有大团队的大公司。

如何与他们竞争?你需要清晰的策略、专注于细分市场、理解市场。

7. 快速变化的生态系统

Apps SDK处于preview。每周都在添加功能。一个月前能用的东西在更新后可能会坏。

你必须准备快速适应。


这就是为什么你需要一个基础课程,而不只是"30分钟教程"。

培训:CodeGym课程

ChatGPT Apps:2025年开发者完整指南 - 10

我们在CodeGym理解这些挑战。这正是为什么我们不只创建"半小时ChatGPT Apps基础",而是准备真实开发的生产级完整课程

我们做得不同

1. 渐进的范式转变

课程从经典web开发开始,然后平滑过渡到AI优先方法。你不是跳进冷水——你一步步来。

2. 深入MCP

我们不只是说"MCP是这样工作的"。我们分解:

  • 协议的内部架构
  • AI如何决定调用工具
  • 优化工具描述以更好发现
  • 使用Resources的高级模式
  • 在堆栈所有层级调试

3. 真实世界项目,不是hello world

40个实践任务——不是"做个待办列表"。而是:

  • 带Instant Checkout的电商应用
  • 带地图集成的旅行规划器
  • 带AI生成的内容创建工具
  • 带实时数据的分析仪表板
  • 还有36个其他任务

4. 安全第一

单独的安全模块:

  • 带PKCE的OAuth 2.1(一步步)
  • Token验证
  • 速率限制策略
  • PII保护
  • GDPR/CCPA合规

5. 真实条件下的生产部署

不只是"这是Vercel的命令"。而是:

  • 平台比较(Vercel、Railway、AWS)
  • CI/CD管道
  • 监控和警报
  • 错误跟踪
  • 性能优化
  • 扩展策略

6. NestJS作为基础

整个课程建立在NestJS上——现代TypeScript后端开发框架。

为什么NestJS?

  • 非常适合MCP服务器(模块化架构)
  • 开箱即用的生产就绪
  • 依赖注入支持
  • 与TypeScript优秀配合
  • 巨大的社区

即使你以前没用过NestJS——我们会从零解释一切。如果用过——你会学到如何将它应用到AI应用。

7. 通过实践改变思维方式

每个级别包括:

  • 理论模块(10-15分钟)
  • 实践任务(30-60分钟)
  • AI导师的代码审查
  • 常见错误分析

课程结束时你像AI工程师一样思考,不只是知道语法。

课程大纲(简要)

模块1:基础(级别1-4)

  • 什么是ChatGPT Apps,为什么需要
  • MCP协议:架构和原理
  • 环境配置(NestJS + MCP SDK)
  • 第一个应用:简单小部件

模块2:MCP和Tools(级别5-8)

  • 注册和描述Tools
  • 参数和验证(Zod)
  • Structured content和UI模板
  • 优化Tool discovery

模块3:小部件和UI(级别9-12)

  • 小部件的HTML/CSS/JS
  • window.openai API
  • 显示模式:inline、fullscreen、PiP
  • OpenAI设计指南
  • 主题和响应式

模块4:OAuth和安全(级别13-15)

  • 带PKCE的OAuth 2.1
  • 授权服务器配置
  • Token管理
  • 安全最佳实践
  • GDPR/CCPA合规

模块5:高级功能(级别16-18)

  • Agentic Commerce Protocol (ACP)
  • Instant Checkout集成
  • 多步骤流程
  • 状态管理

模块6:生产(级别19-20)

  • 部署策略
  • 监控和日志
  • 性能优化
  • 扩展和负载均衡
  • 提交到ChatGPT Store

为什么有效

不只是理论。课程80%是实践。你每天都在写代码。

不只是教程。复杂度递增的任务。从简单到高级。