@ 聊天适应器/ 信使
npm 软件包 :
@chat-adapter/messenger
Facebook 通讯器适配器 聊天SDK,使用 信使平台 API。 。 。 .
联合国 聊天-sdk.dev/适应者/官员/送信员 指南: vercel.com/kb/chat-sdk (英语)
建为 Instagram 直接信件吗 ? 使用
@chat-adapter/instagram换句话说 它通过Instagram API与Instagram Login连接,不需要Facebook页面.
安装
pnpm add @chat-adapter/messenger
带CLI的脚手架
要用这个适配器预选的 新的Messetbot 脚手架:
npx create-chat-sdk@latest my-bot --adapter messenger memory
访问 适配器目录 见其他官方和供应商官方适配器.
使用量
import { Chat } from "chat";
import { createMessengerAdapter } from "@chat-adapter/messenger";
const bot = new Chat({
userName: "mybot",
adapters: {
messenger: createMessengerAdapter(),
},
});
bot.onDirectMessage(async (thread, message) => {
await thread.post("Hello from Messenger!");
});
使用时 createMessengerAdapter() 证书由环境变量自动检测.
Facebook 通讯器设置
1. 创建 Meta 应用程序
- 转到 开发者. facebook.com/apps 页面存档备份,存于互联网档案馆
- 点击 创建 App
- 选择使用大小写 "在Meta的"信使"上与顾客的接触"
- 输入您的应用程序名称并联系电子邮件, 然后创建该应用程序
- 转到 App > App 设置 > 基础 复制您的 应用程序保密 这变成了
FACEBOOK_APP_SECRET
2. 创建Facebook页面
您的信使机器人需要一个Facebook页面来发送和接收消息 。 如果你没有的话:
- 最简单的做法是建立一个 Facebook 企业简介 第一个
- 然后在该商务简介下创建一页
- 注意 Page 名称 - 用户会发送此 Page 与您的 bot 交互
3. 配置信使 API
- 在你的Meta应用仪表板,去 使用大小写
- 查找 "在Meta的"信使"上与顾客的接触" 并单击 自定义
- 然后打开 通讯员 API 设置
配置网点
- 下 配置网点,单击 添加回调 URL
- 输入您的 Webhook URL :
https://your-domain.com/api/webhooks/messenger - 输入 a 校验托肯 ——这是您创建的秘密字符串(它变成了
FACEBOOK_VERIFY_TOKEN(中文(简体) ) - 点击 校验并保存
- 校验后,单击 添加订阅 并能够:
messagesmessaging_postbacksmessaging_reactionsmessage_deliveriesmessage_reads
生成一个页面访问键
- 下 生成访问令牌,单击 添加或删除页面
- 您的页面应该填充—— 选择您创建的页面
- 提示时指定标准权限
- 点击 生成托肯
- 复制代币——变成
FACEBOOK_PAGE_ACCESS_TOKEN
环境变量
FACEBOOK_APP_SECRET=... # App secret from App Settings > Basic
FACEBOOK_PAGE_ACCESS_TOKEN=... # Generated Page access token
FACEBOOK_VERIFY_TOKEN=... # User-defined webhook verification secret
FACEBOOK_BOT_USERNAME=... # Optional, defaults to "messenger-bot"
FACEBOOK_API_URL=... # Optional, override the Meta Graph API base URL
Webhook 设置
信使使用两个网钩机制:
- 核查握手 (GET)——梅塔发送a
hub.verify_token挑战,必须与您的FACEBOOK_VERIFY_TOKEN。 。 。 . - 事件交付 (POST)——接收的信息,反应和后退,通过
X-Hub-Signature-256。 。 。 .
// Next.js App Router example
import { bot } from "@/lib/bot";
export async function GET(request: Request) {
return bot.webhooks.messenger(request);
}
export async function POST(request: Request) {
return bot.webhooks.messenger(request);
}
特征
通讯
| 特性 | 支助 |
|---|---|
| 邮件 | 对 |
| 编辑信件 | 否(信使限制) |
| 删除信件 | 否(信使限制) |
| 流线 | 缓冲(累积后发送) |
| 打字指标 | 对 |
| 标记为已读 | 对 |
丰富内容
| 特性 | 支助 |
|---|---|
| 卡片格式 | 一般/按钮模板 |
| 按钮 | 是(每封信最多3封) |
| 链接按钮 | 是( web url) |
| 选择菜单 | 没有 |
| 表格 | 文本倒转 |
| 字段 | 文本倒转 |
| 纸牌中的图像 | 是( 遗传模板) |
| 模块 | 没有 |
对话
| 特性 | 支助 |
|---|---|
| 反应 | 只接收 |
| 打字指标 | 对 |
| 模式 | 是(仅限DM平台) |
| 后退 | 对 |
入境附件
输入附件 URL 作为 attachment.url。适配器的
fetchData 函数只从 Meta 下载媒体 fbsbx.com 财务报告和审定财务报表
fbcdn.net 主机,拒绝私有和内部地址(包括之后)
重定向),将响应限制在25 MB,30秒后出局.
外部倒计时和链接共享 URL 保存但拒绝之前
网络请求.
读取收据
使用 thread.markAsRead() 在信件处理器中发送信使 mark_seen 发送器动作 :
await thread.markAsRead();
信使将这个动作应用到对话中看到的状态而不是单个消息,即使你传递了消息或消息ID.
信件历史
| 特性 | 支助 |
|---|---|
| 获取信件 | 只发送缓存信件 |
| 获取线索信息 | 对 |
交互式消息
卡片元素被自动转换为Messer模板 :
- 通用模板 ——卡有卡时使用
title或者说imageUrl。支持最多3个按钮. - 按钮模板 ——卡片有文本内容和按钮但没有标题/图像时使用. 最大640个字符.
- 文本倒转 ——当卡片包含不支持的元素(表格,选择菜单)或超过限制时使用.
模板限制 :
- 每个模板最大3个按钮
- 按钮标题限制为 20 个字符( 有椭圆形)
- 字幕限制为80个字符
- 按键模板文本限制为 640 个字符
线索标识格式
messenger:{recipientId}
示例 messenger:27161130920158013
AI 编码代理
如果您使用OpenAI Codex, Claude Code, 或 Cursor 等AI编码代理, 在写入代码前安装 Chat SDK 技能, 使其了解 SDK API, 适配器模式, 以及项目常规 .
npx skills add vercel/chat
技术参考文献 node_modules/chat/docs,加上已发布的软件包中的适配器指南和启动模板.
您也可以安装 Vercel 插件 包括Chat SDK技术与专家代理、代理斜线指令
npx plugins add vercel/vercel-plugin
插件是可选的;单是技能就足以用Chat SDK来构建.
关于可代理阅读的文件,见 聊天- sdk.dev/llms.txt (页数索引)或 聊天- sdk.dev/llms- full.txt (全文).
许可证
麻省理工学院