AI agent skill · by @smallnest
Feishu Upload Image
Upload images to Feishu/Lark. Returns image_key for use in messages.
Archived 2026-10-23 · Source updated 2026-03-27 · License: MIT. Check the original repository for the latest version.
SKILL.md instructions
# Feishu Upload Image
Upload images to Feishu/Lark and get the `image_key` for use in messages.
## Usage
### Upload from Local File
```bash
python3 ./scripts/upload_image.py /path/to/image.jpg
```
### Upload via HTTP
```bash
python3 ./scripts/upload_image.py --type message --image-type message https://example.com/image.jpg
```
### Upload from Base64
```bash
python3 ./scripts/upload_image.py --base64 "iVBORw0KGgoAAAANS..."
```
## Options
| Option | Description | Default |
|--------|-------------|---------|
| `--type message|avatar` | Image usage type | `message` |
| `--image-type message|avatar` | Same as `--type` | `message` |
## Limits
- Max file size: 10MB
- Supported formats: JPEG, PNG, WEBP, GIF, TIFF, BMP, ICO
- GIF resolution ≤ 2000×2000
- Other formats ≤ 12000×12000
## Response
Returns `image_key` which can be used in Feishu messages:
```json
{
"code": 0,
"data": {
"image_key": "img_v2_xxx"
}
}
```
## 发送图片消息指南
### 获取必要信息
1. **飞书访问令牌** (tenant_access_token 或 app_access_token)
2. **接收者ID** (open_id, user_id, chat_id, 或 email)
### 发送图片消息API
**方式1:直接发送图片消息**
```bash
curl -X POST https://open.feishu.cn/open-apis/im/v1/messages \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json" \
-d '{
"receive_id": "{chat_id}",
"msg_type": "image",
"content": "{\"image_key\":\"{image_key}\"}"
}'
```
**方式2:在富文本中嵌入图片**
```bash
curl -X POST https://open.feishu.cn/open-apis/im/v1/messages \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json" \
-d '{
"receive_id": "{chat_id}",
"msg_type": "post",
"content": "{\"post\":{\"zh_cn\":{\"title\":\"图片消息\",\"content\":[[{\"tag\":\"img\",\"image_key\":\"{image_key}\"}]]}}}"
}'
```
### 获取群聊chat_id
1. 在飞书中打开群聊,查看URL中的chat_id
2. 或者通过API查询群聊列表:
```bash
curl -X GET https://open.feishu.cn/open-apis/im/v1/chats \
-H "Authorization: Bearer {access_token}"
```
### 实践经验
- 上传图片后获得 `image_key`,有效期通常为7天
- 使用前需确保有正确的访问令牌权限
- 发送消息需要 `im:message:send_as_bot` 权限
- 建议先上传图片,再发送消息,两步操作分离