# web.feishu.restClient 库模块帮助文档

## feishuRestClientObject 成员列表 <a id="feishuRestClientObject" href="#feishuRestClientObject">&#x23;</a>

### feishuRestClientObject.appId <a id="feishuRestClientObject.appId" href="#feishuRestClientObject.appId">&#x23;</a>
飞书应用 App ID

### feishuRestClientObject.appSecret <a id="feishuRestClientObject.appSecret" href="#feishuRestClientObject.appSecret">&#x23;</a>
飞书应用 App Secret

### feishuRestClientObject.domain <a id="feishuRestClientObject.domain" href="#feishuRestClientObject.domain">&#x23;</a>
飞书 API 域名，默认 "https://open.feishu.cn"

### feishuRestClientObject.download(url,savePath,progressCb) <a id="feishuRestClientObject.download" href="#feishuRestClientObject.download">&#x23;</a>
下载文件到本地。  
返回 savePath, response 或 null, 错误信息

### feishuRestClientObject.downloadFile(fileKey,savePath,progressCb) <a id="feishuRestClientObject.downloadFile" href="#feishuRestClientObject.downloadFile">&#x23;</a>
下载机器人上传的文件

### feishuRestClientObject.downloadImage(imageKey,savePath,progressCb) <a id="feishuRestClientObject.downloadImage" href="#feishuRestClientObject.downloadImage">&#x23;</a>
下载机器人上传的图片

### feishuRestClientObject.downloadMessageResource(messageId,fileKey,typ,savePath,progressCb) <a id="feishuRestClientObject.downloadMessageResource" href="#feishuRestClientObject.downloadMessageResource">&#x23;</a>
下载消息中的资源文件。  
typ 默认 "file"，可选 "image"

### feishuRestClientObject.getEndpoint() <a id="feishuRestClientObject.getEndpoint" href="#feishuRestClientObject.getEndpoint">&#x23;</a>
获取长连接 endpoint 地址。  
返回 url, clientConfig, response。  
失败返回 null, 错误信息

### feishuRestClientObject.getTenantToken() <a id="feishuRestClientObject.getTenantToken" href="#feishuRestClientObject.getTenantToken">&#x23;</a>
获取 tenant_access_token。  
自动缓存并在过期前 60 秒刷新。  
返回 token 或 null, 错误信息

### feishuRestClientObject.http <a id="feishuRestClientObject.http" href="#feishuRestClientObject.http">&#x23;</a>
内部 HTTP 客户端  

[返回对象:webRestJsonClientObject](#webRestJsonClientObject)

### feishuRestClientObject.markdownCard(markdown,title,template) <a id="feishuRestClientObject.markdownCard" href="#feishuRestClientObject.markdownCard">&#x23;</a>
创建只包含 Markdown 组件的飞书卡片。  
title 可选，template 默认 "blue"

### feishuRestClientObject.markdownCardMaxBytes <a id="feishuRestClientObject.markdownCardMaxBytes" href="#feishuRestClientObject.markdownCardMaxBytes">&#x23;</a>
Markdown 卡片 content JSON 最大字节数，默认 30KB。  
超出时 replyMarkdown/sendMarkdown 自动退化为 text 消息，设为 0/null 可关闭退化判断

### feishuRestClientObject.reply(messageId,msgType,contentTable) <a id="feishuRestClientObject.reply" href="#feishuRestClientObject.reply">&#x23;</a>
回复指定消息。  
msgType 如 "text"/"image"/"file" 等。  
contentTable 为消息内容表，会自动 JSON 序列化

### feishuRestClientObject.replyCard(messageId,card) <a id="feishuRestClientObject.replyCard" href="#feishuRestClientObject.replyCard">&#x23;</a>
回复飞书交互卡片消息

### feishuRestClientObject.replyFile(messageId,fileKey) <a id="feishuRestClientObject.replyFile" href="#feishuRestClientObject.replyFile">&#x23;</a>
回复文件消息

### feishuRestClientObject.replyFilePath(messageId,path,fileType,fileName,duration,progressCb) <a id="feishuRestClientObject.replyFilePath" href="#feishuRestClientObject.replyFilePath">&#x23;</a>
上传并回复文件

### feishuRestClientObject.replyImage(messageId,imageKey) <a id="feishuRestClientObject.replyImage" href="#feishuRestClientObject.replyImage">&#x23;</a>
回复图片消息

### feishuRestClientObject.replyImagePath(messageId,path,imageType,progressCb) <a id="feishuRestClientObject.replyImagePath" href="#feishuRestClientObject.replyImagePath">&#x23;</a>
上传并回复图片

### feishuRestClientObject.replyMarkdown(messageId,markdown,title,template) <a id="feishuRestClientObject.replyMarkdown" href="#feishuRestClientObject.replyMarkdown">&#x23;</a>
用 Markdown 卡片回复消息。  
卡片 JSON 超过 markdownCardMaxBytes 时自动退化为 text 消息

### feishuRestClientObject.replyText(messageId,text) <a id="feishuRestClientObject.replyText" href="#feishuRestClientObject.replyText">&#x23;</a>
快捷回复文本消息

### feishuRestClientObject.request(url,method,data) <a id="feishuRestClientObject.request" href="#feishuRestClientObject.request">&#x23;</a>
发送 REST 请求。  
url 可以是相对路径或完整 URL。  
method 可选 "GET"/"POST"/"PUT"/"DELETE"/"PATCH"，默认 POST。  
返回响应对象或 null, 错误信息

### feishuRestClientObject.send(receiveId,receiveIdType,msgType,contentTable) <a id="feishuRestClientObject.send" href="#feishuRestClientObject.send">&#x23;</a>
主动发送消息。  
receiveIdType 可选 "open_id"/"user_id"/"union_id"/"email"/"chat_id"

### feishuRestClientObject.sendCard(receiveId,receiveIdType,card) <a id="feishuRestClientObject.sendCard" href="#feishuRestClientObject.sendCard">&#x23;</a>
发送飞书交互卡片消息

### feishuRestClientObject.sendFile(receiveId,receiveIdType,fileKey) <a id="feishuRestClientObject.sendFile" href="#feishuRestClientObject.sendFile">&#x23;</a>
发送文件消息

### feishuRestClientObject.sendFilePath(receiveId,receiveIdType,path,fileType,fileName,duration,progressCb) <a id="feishuRestClientObject.sendFilePath" href="#feishuRestClientObject.sendFilePath">&#x23;</a>
上传并发送文件。  
返回 response, null, fileKey, uploadRes

### feishuRestClientObject.sendImage(receiveId,receiveIdType,imageKey) <a id="feishuRestClientObject.sendImage" href="#feishuRestClientObject.sendImage">&#x23;</a>
发送图片消息

### feishuRestClientObject.sendImagePath(receiveId,receiveIdType,path,imageType,progressCb) <a id="feishuRestClientObject.sendImagePath" href="#feishuRestClientObject.sendImagePath">&#x23;</a>
上传并发送图片。  
返回 response, null, imageKey, uploadRes

### feishuRestClientObject.sendMarkdown(receiveId,receiveIdType,markdown,title,template) <a id="feishuRestClientObject.sendMarkdown" href="#feishuRestClientObject.sendMarkdown">&#x23;</a>
发送 Markdown 卡片消息。  
卡片 JSON 超过 markdownCardMaxBytes 时自动退化为 text 消息

### feishuRestClientObject.sendText(receiveId,receiveIdType,text) <a id="feishuRestClientObject.sendText" href="#feishuRestClientObject.sendText">&#x23;</a>
快捷发送文本消息

### feishuRestClientObject.source <a id="feishuRestClientObject.source" href="#feishuRestClientObject.source">&#x23;</a>
来源标识，用于 User-Agent

### feishuRestClientObject.tenantToken <a id="feishuRestClientObject.tenantToken" href="#feishuRestClientObject.tenantToken">&#x23;</a>
缓存的 tenant_access_token

### feishuRestClientObject.tenantTokenExpires <a id="feishuRestClientObject.tenantTokenExpires" href="#feishuRestClientObject.tenantTokenExpires">&#x23;</a>
tenant_access_token 过期时间戳（毫秒）

### feishuRestClientObject.updateMessage(messageId,msgType,contentTable) <a id="feishuRestClientObject.updateMessage" href="#feishuRestClientObject.updateMessage">&#x23;</a>
编辑消息。  
仅支持 text/post 类型，最多编辑 20 次

### feishuRestClientObject.updateText(messageId,text) <a id="feishuRestClientObject.updateText" href="#feishuRestClientObject.updateText">&#x23;</a>
快捷编辑文本消息

### feishuRestClientObject.uploadFilePath(path,fileType,fileName,duration,progressCb) <a id="feishuRestClientObject.uploadFilePath" href="#feishuRestClientObject.uploadFilePath">&#x23;</a>
上传文件。  
fileType 默认 "stream"，可选 "opus"/"mp4"/"pdf"/"doc"/"xls"/"ppt"。  
文件限制 30MB。  
返回 fileKey, response 或 null, 错误信息

### feishuRestClientObject.uploadImagePath(path,imageType,progressCb) <a id="feishuRestClientObject.uploadImagePath" href="#feishuRestClientObject.uploadImagePath">&#x23;</a>
上传图片文件。  
imageType 默认 "message"，可选 "avatar"。  
图片限制 10MB。  
返回 imageKey, response 或 null, 错误信息

## web.feishu 成员列表 <a id="web.feishu" href="#web.feishu">&#x23;</a>

### web.feishu.restClient <a id="web.feishu.restClient" href="#web.feishu.restClient">&#x23;</a>
飞书开放平台 REST API 客户端。  
用于发送消息、上传下载文件等操作。  

[返回对象:feishuRestClientObject](#feishuRestClientObject)

### web.feishu.restClient(配置表) <a id="web.feishu.restClient" href="#web.feishu.restClient">&#x23;</a>
创建飞书 REST API 客户端。  
配置表必须包含 appId、appSecret 字段，  
可选字段 domain（默认 "https://open.feishu.cn"）、source。  

[返回对象:feishuRestClientObject](#feishuRestClientObject)
