-
Notifications
You must be signed in to change notification settings - Fork 23
/
index.d.ts
150 lines (134 loc) · 3.51 KB
/
index.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
import { AxiosResponse } from 'axios';
interface WebHookOptions {
webhook: string;
httpclient?: any;
}
interface BaseUrlOptions {
baseUrl: string;
accessToken: string;
secret?: string;
httpclient?: any;
}
declare namespace Message {
interface Text {
msgtype: 'text';
text: {
content: string;
};
at?: {
atMobiles: string[];
isAtAll: boolean;
};
}
interface Link {
msgtype: 'link';
link: {
text: string;
title: string;
picUrl: string;
messageUrl: string;
};
}
interface Markdown {
msgtype: 'markdown';
markdown: {
title: string;
text: string;
atMobiles: string[];
isAtAll: boolean;
};
}
interface ActionCard {
msgtype: 'actionCard';
actionCard: {
title: string;
text: string;
singleTitle?: string;
singleURL?: string;
hideAvatar: '0' | '1';
btnOrientation: '0' | '1';
btns?: Array<{
title: string;
actionURL: string;
}>;
};
}
interface FeedCardItem {
msgtype: 'feedCard';
feedCard: {
title: string;
messageURL: string;
picURL: string;
};
}
}
type MessageType = Message.Text | Message.Link | Message.Markdown | Message.ActionCard | Message.FeedCardItem;
declare class ChatBot {
/**
* 机器人工厂,所有的消息推送项目都会调用 this.webhook 接口进行发送
*
* @param options.webhook 完整的接口地址
* @param options.baseUrl 接口地址
* @param options.accessToken accessToken
* @param options.httpclient 例如 urllib / axios
*/
constructor(options: WebHookOptions | BaseUrlOptions);
/**
* 发送钉钉消息
*
* @param content 发动的消息对象
* @return
*/
send(content: MessageType): Promise<AxiosResponse>;
/**
* 发送纯文本消息,支持@群内成员
*
* @param content 消息内容
* @param at 群内@成员的手机号
* @return
*/
text(content: string, at?: Message.Text['at']): Promise<AxiosResponse>;
/**
* 发送单个图文链接
*
* @param link.title 标题
* @param link.text 消息内容
* @param link.messageUrl 跳转的Url
* @param link.picUrl 图片的链接
* @return
*/
link(link: Message.Link['link']): Promise<AxiosResponse>;
/**
* 发送Markdown消息
*
* @param title 标题
* @param text 消息内容(支持Markdown)
* @return
*/
markdown(title: string, text: string, at: Message.Text['at']): Promise<AxiosResponse>;
/**
* 发送actionCard(动作卡片)
* Ps: 支持多个按钮,支持Markdown
*
* @param card.title 标题
* @param card.text 消息内容
* @param card.hideAvatar 隐藏发送者头像(1隐藏,0显示,默认为0)
* @param card.btnOrientation 按钮排列的方向(0竖直,1横向,默认为0)
* @param card.btn.title 某个按钮标题
* @param card.btn.actionURL 某个按钮链接
* @return
*/
actionCard(card: Message.ActionCard['actionCard']): Promise<AxiosResponse>;
/**
* 发送feedCard,支持多图文链接
* Ps: links可包含多个link,建议不要超过4个
*
* @param link.title 标题
* @param link.text 消息内容
* @param link.messageUrl 跳转的Url
* @param link.picUrl 图片的链接
* @return
*/
feedCard(links: Message.FeedCardItem[]): Promise<AxiosResponse>;
}
export = ChatBot;