open-index/open-npm huggingface dataset:
npm package: @feihan-im/openclaw-plugin
Description: Feihan IM OpenClaw channel plugin
Author: 上海飞函安全科技有限公司
Latest version: 0.1.18

# @feihan-im/openclaw-plugin

[![npm version](https://img.shields.io/npm/v/@feihan-im/openclaw-plugin.svg)](https://www.npmjs.com/package/@feihan-im/openclaw-plugin)
[![CI](https://github.com/feihan-im/openclaw-feihan/actions/workflows/ci.yaml/badge.svg)](https://github.com/feihan-im/openclaw-feihan/actions/workflows/ci.yaml)
[![npm downloads](https://img.shields.io/npm/dm/@feihan-im/openclaw-plugin.svg)](https://www.npmjs.com/package/@feihan-im/openclaw-plugin)
[![TypeScript](https://img.shields.io/badge/TypeScript-5.0%2B-blue.svg)](https://www.typescriptlang.org/)
[![License](https://img.shields.io/github/license/feihan-im/openclaw-feihan)](LICENSE)

中文 | [English](./README.en.md)

飞函，是安全稳定的私有化一站式办公平台，功能包括即时通讯、组织架构、音视频会议、网盘等。

飞函 IM 频道插件，用于 OpenClaw。将飞函机器人接入 OpenClaw 的 AI Agent 管线，通过飞函与 Agent 对话。请参阅[配置教程](https://feihanim.cn/docs/admin/bots/openclaw)了解如何将飞函连接到 OpenClaw。

## 功能

- 支持私聊和群聊
- 收发文本消息
- 输入状态指示和已读回执
- 多账号配置
- 群聊触发策略，支持仅 @提及 模式
- 入站白名单访问控制
- 消息去重
- 自身消息过滤
- 客户端自动重连与鉴权重试

## 前置条件

- 已安装并运行 **OpenClaw**
- **Node.js** v18 或更高版本
- 已准备好飞函应用的 `appId`、`appSecret` 和 `backendUrl`

## 安装

```bash
openclaw plugins install @feihan-im/openclaw-plugin
```

## 配置

运行以下命令，将三个占位符替换为你的飞函应用凭据：

```bash
openclaw channels add --channel feihan \
  --app-token <APP_ID> \
  --token <APP_SECRET> \
  --url <BACKEND_URL>
```

| 参数 | 填入内容 |
|------|----------|
| `--app-token` | 飞函应用 ID |
| `--token` | 飞函应用密钥 |
| `--url` | 飞函服务器地址，如 `http://192.168.10.10:21000` |

然后重启网关：

```bash
openclaw gateway restart
```

### 账号管理

#### 添加账号

如需接入多个飞函机器人，使用 `--account` 参数指定账号名称：

```bash
openclaw channels add --channel feihan \
  --account bot2 \
  --app-token <APP_ID> \
  --token <APP_SECRET> \
  --url <BACKEND_URL>
```

首个账号自动命名为 `default`。

#### 禁用账号

禁用账号（保留配置，方便后续重新启用）：

```bash
openclaw channels remove --channel feihan --account bot2
```

如需重新启用，编辑 `~/.openclaw/openclaw.json`，将该账号的 `"enabled"` 设为 `true`（或删除该字段——账号默认启用）。

#### 删除账号

彻底删除账号及其配置：

```bash
openclaw channels remove --channel feihan --account bot2 --delete
```

任何账号变更后，需执行 `openclaw gateway restart` 重启网关使更改生效。

### 高级配置

如需修改其他设置（如加密或请求超时），编辑 `~/.openclaw/openclaw.json`：

```json
{
  "channels": {
    "feihan": {
      "accounts": {
        "default": {
          "appId": "your_app_id",
          "appSecret": "your_app_secret",
          "backendUrl": "http://192.168.10.10:21000",
          "enableEncryption": true,
          "requestTimeout": 30000
        }
      }
    }
  }
}
```

| 字段 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
| `appId` | string | 必填 | 飞函应用 ID |
| `appSecret` | string | 必填 | 飞函应用密钥 |
| `backendUrl` | string | 必填 | 飞函后端地址 |
| `enabled` | boolean | `true` | 启用/禁用该账号 |
| `enableEncryption` | boolean | `true` | 是否启用加密传输 |
| `requestTimeout` | number | `30000` | API 请求超时时间（毫秒） |

### 环境变量

`default` 账号支持环境变量回退：

- `FEIHAN_APP_ID`
- `FEIHAN_APP_SECRET`
- `FEIHAN_BACKEND_URL`

## 许可证

Apache-2.0
npm package: @feihan-im/sdk
Description: 飞函官方 OpenAPI SDK，支持 Node.js 和 Browser
Author: 上海飞函安全科技有限公司
Latest version: 0.28.108

# 飞函 IM OpenAPI SDK - JavaScript

[![npm version](https://img.shields.io/npm/v/@feihan-im/sdk.svg)](https://www.npmjs.com/package/@feihan-im/sdk)
[![CI](https://github.com/feihan-im/openapi-sdk-js/actions/workflows/ci.yaml/badge.svg)](https://github.com/feihan-im/openapi-sdk-js/actions/workflows/ci.yaml)
[![npm downloads](https://img.shields.io/npm/dm/@feihan-im/sdk.svg)](https://www.npmjs.com/package/@feihan-im/sdk)
[![TypeScript](https://img.shields.io/badge/TypeScript-5.0%2B-blue.svg)](https://www.typescriptlang.org/)
[![License](https://img.shields.io/github/license/feihan-im/openapi-sdk-js)](LICENSE)

[English](README_en.md) | 中文

飞函，是安全稳定的私有化一站式办公平台，功能包括即时通讯、组织架构、音视频会议、网盘等。

本项目是飞函服务端的 JavaScript SDK，用于通过 OpenAPI 与飞函服务端进行交互。使用前需要先自行部署飞函服务端，部署教程请参考[快速部署文档](https://feihanim.cn/docs/admin/install/quick-install)。

## 安装

```bash
npm install @feihan-im/sdk
```

WebSocket 功能在浏览器和 Node.js 22+ 中原生支持。Node.js < 22 需安装 [`ws`](https://www.npmjs.com/package/ws)：

```bash
npm install ws
```

## 快速开始

```typescript
import { FeihanClient, MessageType_TEXT } from '@feihan-im/sdk';

const client = await FeihanClient.create(
  'https://your-backend-url.com',
  'your-app-id',
  'your-app-secret',
);

// 可选：预热可提前获取访问凭证和同步服务端时间，减少首次调用的延迟
await client.preheat();

// 调用 API
const resp = await client.Im.Message.sendMessage({
  chat_id: 'chat-id',
  message_type: MessageType_TEXT,
  message_content: { text: { content: '飞函新版本发布！' } },
});
console.log(resp);

// 使用完毕后关闭
await client.close();
```

## 客户端配置

`FeihanClient.create()` 支持通过可选参数配置客户端行为：

```typescript
import { FeihanClient, LoggerLevel } from '@feihan-im/sdk';

const client = await FeihanClient.create(
  'https://your-backend-url.com',
  'your-app-id',
  'your-app-secret',
  {
    logLevel: LoggerLevel.Debug,         // 日志级别（默认: Info）
    requestTimeout: 30_000,              // 请求超时毫秒数（默认: 60000）
    enableEncryption: false,             // 启用请求加密（默认: true）
  },
);
```

## 事件订阅

通过 WebSocket 接收实时事件推送：

```typescript
// 注册事件处理函数
const handlerId = client.Im.Message.Event.onMessageReceive((event) => {
  console.log('收到消息:', event);
});

// 取消订阅
client.Im.Message.Event.offMessageReceive(handlerId);
```

## 错误处理

API 调用返回的响应中包含 `code` 和 `msg` 字段，`code` 为 `0` 表示请求成功：

```typescript
const resp = await client.Im.Message.sendMessage({
  chat_id: 'chat-id',
  message_type: MessageType_TEXT,
  message_content: { text: { content: '飞函新版本发布！' } },
});
if (resp.code !== 0) {
  console.error(`请求失败: code=${resp.code}, msg=${resp.msg}`);
}
```

## 环境要求

- **Node.js** 18+（需支持 `fetch`、`crypto.subtle`、`CompressionStream`）
- **浏览器**：现代浏览器（需支持 Web Crypto API 和 CompressionStream）
- **TypeScript** 5.0+（可选，SDK 内置类型声明）

## 相关链接

- [官网](https://feihanim.cn/)

## 许可证

[Apache-2.0 License](LICENSE)