Unipile GitHub:SDK、文档与集成指南
探索Unipile的GitHub仓库、官方SDK、快速入门示例,以及其统一消息API与UnifyPort等替代方案的比较。
Unipile GitHub:SDK、文档与入门指南
如果您正在评估Unipile作为多渠道消息和电子邮件API,GitHub是大多数开发者首先查看的地方。Unipile GitHub组织托管了官方开发者文档仓库、特定语言的SDK以及团队接受反馈和错误报告的问题跟踪器。
本指南解释了Unipile GitHub生态系统中包含的内容、如何安装和使用官方SDK、API涵盖的范围,以及当您的渠道不同时,Unipile与UnifyPort等统一消息平台的比较。
Unipile GitHub组织中有什么?
Unipile GitHub个人资料目前列出了六个公共仓库。对于集成工作最重要的有:
- 开发者文档仓库 — 指南、API参考和产品资源的中心枢纽。
- Unipile Node.js SDK — 涵盖LinkedIn、WhatsApp、Email、Telegram、Instagram、Messenger和X(Twitter)的Unipile API包装器。
- Unipile Python SDK — 官方Python客户端,用于Unipile API v2,目前处于测试阶段。
- Unipile PHP SDK — 官方PHP客户端,适用于使用Laravel、Symfony或其他PHP技术栈的团队。
组织页面将开发者引导至官方文档站点以获取全面指南,并引导至SDK仓库以获取特定语言的安装和使用说明。
Unipile Node.js SDK:安装与快速入门
Unipile GitHub:SDK、文档与集成指南 - Unipile Node.js SDK:安装与快速入门。
Node.js SDK是最成熟的客户端,也是支持线程和集成示例中最常引用的。它需要Node 18或更高版本。
安装SDK
npm install unipile-node-sdk
使用您的Unipile凭据进行身份验证
import { UnipileClient } from 'unipile-node-sdk';
const client = new UnipileClient('https://{YOUR_DSN}', '{YOUR_ACCESS_TOKEN}');
DSN是分配给您的Unipile账户的端点,访问令牌从仪表板生成。
连接消息账户
SDK支持特定于提供商的连接方法。例如,要使用用户名和密码连接LinkedIn账户:
const response = await client.account.connectLinkedin({
username: 'your LinkedIn username',
password: 'your LinkedIn password',
});
其他支持的连接方法包括:
connectWhatsapp()connectInstagram({ username, password })connectMessenger({ username, password })connectTelegram()connectTwitter({ username, password })
对于受双因素身份验证或一次性密码保护的账户,SDK公开了一个检查点求解器:
await client.account.solveCodeCheckpoint({
account_id: 't5XY4yQzR9WVrlNFyzPMhw',
provider: 'LINKEDIN',
code: '******',
});
发送消息
await client.messaging.sendMessage({
chat_id: 'vISKyHtDUmagrk6vrnlXhw',
text: 'Hello World',
});
使用过滤器列出聊天
await client.messaging.getAllChats({
account_type: 'LINKEDIN',
account_id: 't5XY4yQzR9WVrlNFyzPMhw',
limit: 50,
after: '2024-07-22T12:00:00.000Z',
});
发送文件附件
const fs = require('fs');
const path = './src/unipile.png';
const fileBuffer = await fs.readFile(path);
await client.messaging.sendMessage({
chat_id: 'vISKyHtDUmagrk6vrnlXhw',
text: 'Hello World',
attachments: [['unipile.png', fileBuffer]],
});
按类型处理错误
SDK抛出带有结构化错误体的UnsuccessfulRequestError实例。您可以基于HTTP状态或API错误类型进行分支:
try {
const result = await client.messaging.getAllAttendees({ account_id });
} catch (err) {
if (err instanceof UnsuccessfulRequestError) {
const { status, type } = err.body;
switch (type) {
case 'errors/invalid_credentials':
// 提示重新认证
break;
case 'errors/disconnected_account':
// 触发重新连接流程
break;
default:
// 记录并重试或向用户显示
break;
}
}
}
调用SDK中尚未打包的端点
对于SDK尚未包装的路由,客户端公开了一个原始请求方法。这对于LinkedIn操作(如关注公司或个人资料)很有用:
await client.request.send({
path: ['linkedin'],
method: 'POST',
parameters: { account_id: '!!YOURACCOUNTID!!' },
body: {
body: { patch: { $set: { following: true } } },
account_id: 'dfR-rG0tQfGhfeP2l5_Bdw',
method: 'POST',
request_url: 'https://www.linkedin.com/voyager/api',
},
});
Unipile Python SDK:API v2测试版

Unipile GitHub:SDK、文档与集成指南 - Unipile Python SDK:API v2测试版.
Unipile Python SDK针对Unipile API v2,该版本仍处于测试阶段。由于该包尚未发布到PyPI,请直接从GitHub安装:
pip install git+https://github.com/unipile/unipile-python.git
如果您的项目需要可重现性,您可以固定特定的分支、标签或提交:
pip install git+https://github.com/unipile/unipile-python.git@main
基本用法遵循标准的生成客户端模式:
import unipile
configuration = unipile.Configuration()
configuration.api_key["apiKey"] = "apikey"
api_client = unipile.ApiClient(configuration)
messaging_api = unipile.MessagingApi(api_client)
有关端点的详细信息,仓库将开发者引导至Unipile v2 API文档和仪表板。
Unipile PHP SDK
Unipile GitHub:SDK、文档与集成指南 - Unipile PHP SDK。
PHP SDK与Node.js客户端一起列在主文档仓库中。它遵循相同的设计理念:一个围绕REST API的轻量包装器,处理身份验证、账户连接、消息传递、附件和个人资料检索,而无需开发者管理原始HTTP调用。
Unipile API涵盖的内容
在SDK中,Unipile API公开了几个功能领域:
账户连接
- 面向最终用户的托管身份验证向导链接
- 使用提供商凭据的自定义身份验证流程
- 基于Cookie和用户代理的LinkedIn连接
- 检查点和2FA/OTP解析
- LinkedIn账户重新同步
消息传递
- 开始新聊天
- 发送文本消息
- 列出和检索聊天
- 列出聊天中的参与者
- 发送和检索文件附件
用户资料
- 按用户ID或提供商ID检索资料
- 检索已认证账户自己的资料
- 检索LinkedIn公司资料
LinkedIn特定功能
- 发送InMail
- 发送和管理连接邀请
- 创建帖子和评论
- 对帖子添加反应
- 列出联系人和公司资料
电子邮件
- 检索电子邮件历史记录
- 发送、回复和删除电子邮件
Unipile与UnifyPort:哪种GitHub驱动的方法适合?
Unipile和UnifyPort都降低了多渠道消息传递的成本,但它们针对不同的渠道集和集成风格进行了优化。
| 能力 | Unipile | UnifyPort |
|---|---|---|
| 主要渠道 | LinkedIn、WhatsApp、Email、Telegram、Instagram、Messenger、X | Telegram、WhatsApp、LINE、X、Zalo、TikTok |
| API风格 | REST,带有官方Node.js、PHP和Python SDK | REST,带有官方Node.js、PHP和Go SDK |
| 事件传递 | 特定于提供商的webhook | 标准化JSON事件层,带有webhook控制平面 |
| 可靠性功能 | 错误类型和检查点处理 | 内置速率限制、带幂等性的重试、故障隔离 |
| 安全性 | 访问令牌和API密钥 | API密钥加上HMAC-SHA256 webhook签名 |
| 最佳适用场景 | 需要深度LinkedIn和电子邮件自动化的团队 | 需要跨聊天应用标准化事件的AI代理、CRM和运营工具 |
如果您的产品严重依赖LinkedIn自动化或电子邮件工作流,Unipile的GitHub SDK是一个强有力的选择。如果您的技术栈围绕Telegram、WhatsApp、LINE、X、Zalo或TikTok等聊天平台构建,并且您需要将每个提供商事件标准化为一种JSON格式,那么像UnifyPort这样的统一消息API可以消除更多特定于提供商的管道。
对于已经运行大量Telegram工作负载的团队,Telegram机器人指南解释了BotFather和Bot API的工作原理,而Unipile MCP指南展示了如何通过模型上下文协议将AI代理连接到多渠道消息传递。
常见集成陷阱
1. 忽略检查点处理
LinkedIn和其他提供商经常触发2FA或OTP挑战。生产集成必须优雅地处理errors/checkpoint_error和errors/invalid_checkpoint_solution,而不是将它们视为致命错误。
2. 不固定SDK版本
Python SDK是测试版,直接从Git安装。在您的需求文件中固定提交或标签,以避免意外中断。
3. 混合API版本
Node.js SDK针对稳定API,而Python SDK针对API v2测试版。在选择客户端之前,请验证您的仪表板凭据属于哪个API版本。
4. 忽视原始请求回退
并非每个提供商路由都打包在SDK中。原始请求方法是逃生舱,但它要求您了解底层提供商端点和请求形状。
相关阅读
- Line of Duty:系列指南、演员、观看顺序及为何有效 - 完整的Line of Duty指南:系列顺序、演员、AC-12故事情节、H之谜、观看地点以及这部BBC剧为何引人入胜。
- 如何使用LINE:完整初学者指南 - 从设置到高级功能学习如何使用LINE。本指南涵盖账户创建、聊天、通话、群组、隐私设置和多渠道API集成。
来源和进一步阅读
- GitHub - unipile/unipile-node-sdk:Unipile API的Node.js包装器,用于管理LinkedIn API、WhatsApp API、Email API... - Unipile API的Node.js包装器,用于管理LinkedIn API、WhatsApp API、Email API... - unipile/unipile-node-sdk
常见问题解答
官方Unipile GitHub仓库在哪里?
组织位于github.com/unipile。它包含开发者文档仓库和官方SDK仓库。
Unipile提供哪些SDK?
Unipile提供官方Node.js、PHP和Python SDK。Node.js和PHP SDK针对稳定API,而Python SDK针对API v2测试版。
如何安装Unipile Node.js SDK?
在Node 18+项目中运行npm install unipile-node-sdk,然后使用您的DSN和访问令牌实例化UnipileClient。
Unipile支持Telegram和WhatsApp吗?
是的。Node.js SDK包含connectTelegram()和connectWhatsapp()的连接方法,以及LinkedIn、Instagram、Messenger、X和电子邮件。
我可以将Unipile与Python一起使用吗?
可以,但Python SDK是测试版,尚未在PyPI上。使用pip install git+https://github.com/unipile/unipile-python.git直接从GitHub安装。
如何报告错误或请求功能?
在相关的GitHub仓库中打开问题,或通过文档仓库联系Unipile支持团队。
结论
Unipile GitHub组织是开发者通过单个API集成LinkedIn、WhatsApp、电子邮件和其他渠道的实际入口。Node.js SDK提供了最广泛的覆盖范围和最完整的示例,而PHP和Python客户端为团队提供了技术栈的灵活性。理解账户连接流程、检查点处理和错误类型将为您节省大量调试时间。
如果您的渠道组合更倾向于聊天平台而不是LinkedIn和电子邮件,请评估标准化事件层是否比深度特定于提供商的功能更重要。在这种情况下,像UnifyPort这样的平台可以通过为每条消息提供一致的JSON形状和托管的webhook管道来补充或替代提供商密集型SDK方法。
