Skip to content

ppagent / FeishuSource

Class: FeishuSource

Defined in: src/source/feishu.source.ts:245

飞书的应用消息源,要注意使用了长连接进行监听,不能启动多个参数相同的消息源,只有其中一个会接收到消息

涉及到用户或者群组信息时,userId是对应的用户open_id或者群组的open_id,userName对应的用户userId或者群组自定义id(仅在需要单独调用消息发送接口时会用到)

至少需要基本的机器人消息权限、获取用户基本信息、通讯录中获取部门列表及用户列表相关权限、卡片消息相关权限

由于飞书的自定义机器人没有权限直接上传图片文件,因此只能发送文本信息、不带图的富文本信息和不带图的卡片消息

Implements

Constructors

Constructor

new FeishuSource(_app, _options): FeishuSource

Defined in: src/source/feishu.source.ts:447

Parameters

_app

PPAgent

_options

IFeishuSourceOptions

Returns

FeishuSource

Properties

event

event: Emittery

Defined in: src/source/feishu.source.ts:478

用户发布订阅事件的对象,事件类型为SourceEventType

Implementation of

ISource.event


params

static params: ISourceParamas

Defined in: src/source/feishu.source.ts:246

Accessors

actions

Get Signature

get actions(): ISourceActionInfo[]

Defined in: src/source/feishu.source.ts:475

消息源的路由和ws处理器列表,需要在消息源的构造函数阶段创建

Returns

ISourceActionInfo[]

Implementation of

ISource.actions


options

Get Signature

get options(): IFeishuSourceOptions

Defined in: src/source/feishu.source.ts:472

初始化过程中的动态参数

Returns

IFeishuSourceOptions

Implementation of

ISource.options


params

Get Signature

get params(): ISourceParamas

Defined in: src/source/feishu.source.ts:469

这个Source的固有属性,比如source的平台名称

Returns

ISourceParamas

Implementation of

ISource.params

Methods

afterSend()

afterSend(message): Promise<void>

Defined in: src/source/feishu.source.ts:1558

当agent把内容发送给bot之后,可以用来给source释放相关资源,如结束卡片的写入状态。

Parameters

message

ISourceChatMessage

Returns

Promise<void>

Implementation of

ISource.afterSend


beforeSend()

beforeSend(message): Promise<void>

Defined in: src/source/feishu.source.ts:1520

当agent把内容送给bot回复之前。可以用来做一系列的准备工作,如提前下发卡片stream卡片。

Parameters

message

ISourceChatMessage

Returns

Promise<void>

Implementation of

ISource.beforeSend


dispose()

dispose(): Promise<string>

Defined in: src/source/feishu.source.ts:1639

Returns

Promise<string>

Implementation of

IDisposable.dispose


getContactDetail()

getContactDetail(baseInfo): Promise<ISourceUserInfo>

Defined in: src/source/feishu.source.ts:1635

根据获取联系人列表接口返回的粗略信息

Parameters

baseInfo

ISourceUserInfo

Returns

Promise<ISourceUserInfo>

Implementation of

ISource.getContactDetail


getContacts()

getContacts(mode, force): Promise<object & Partial<ISourceUserInfo>[]>

Defined in: src/source/feishu.source.ts:1610

获取用户信息,至少返回nickName

Parameters

mode

all返回全部,user仅返回个人用户,group仅返回群组

"all" | "user" | "group"

force

boolean = false

Returns

Promise<object & Partial<ISourceUserInfo>[]>

Implementation of

ISource.getContacts


hasLogin()

hasLogin(): boolean

Defined in: src/source/feishu.source.ts:1467

是否是登录状态。仅被用来检查登录状态,未登录不代表出错,也可能是正处于登录中。

Returns

boolean

Implementation of

ISource.hasLogin


login()

login(): Promise<void>

Defined in: src/source/feishu.source.ts:1477

执行登录,如果有需要扫码等,应发出全局TODO事件,登录成功后发出LOGIN消息,并携带用户信息

Returns

Promise<void>

Implementation of

ISource.login


me()

me(force?): Promise<ISourceUserInfo>

Defined in: src/source/feishu.source.ts:1432

获取当前登录用户的个人信息

Parameters

force?

boolean

Returns

Promise<ISourceUserInfo>

Implementation of

ISource.me


sendMessage()

sendMessage(message, fromMessage?): Promise<string>

Defined in: src/source/feishu.source.ts:1564

发送消息,如果返回内容不为空,说明发送失败

Parameters

message

ISourceChatMessage

要发送的消息

fromMessage?

ISourceChatMessage

该条消息如果是对某条消息的响应,可以传入原始消息。某些平台可能只允许被动发送消息,此时可能需要用到原始触发回复的那条消息。

Returns

Promise<string>

Implementation of

ISource.sendMessage