humanpages
Search and hire real humans for tasks — photography, delivery, research, and more
Low-level Feishu document block operations via REST API. Use when feishu_doc built-in actions are insufficient: batch update cells, precise position insert, traverse block tree, table row/column manipulation, image replacement, or any operation requiring direct block-level control. Complements feishu-doc, not a replacement.
Suivez les instructions du dépôt pour votre agent. Consultez les fichiers et dépendances avant l’installation.
SkillHub CLI
skillhub install deadblue22/feishu-block-opsExaminez la source et la compatibilité, puis suivez les étapes d’installation.
Donnez le lien à votre agent et demandez-lui d’examiner instructions et dépendances avant d’expliquer les étapes.
Direct REST API operations for Feishu cloud documents when the feishu_doc tool's built-in actions don't cover your needs.
| Need | Use |
|---|---|
| Read/write/append document | feishu_doc |
| Create simple table | feishu_doc create_table_with_values |
| Upload image/file | feishu_doc upload_image/upload_file |
| Batch update 200 cells at once | This skill |
| Insert content at exact position | This skill (or feishu-md2blocks) |
| Traverse block tree | This skill |
| Table row/column insert/delete | This skill |
| Merge/unmerge table cells | This skill |
| Replace images in-place | This skill |
| Delete blocks by index range | This skill |
Get tenant access token from OpenClaw config:
import json, urllib.request
def get_feishu_token():
with open(os.path.expanduser("~/.openclaw/openclaw.json")) as f:
c = json.load(f)["channels"]["feishu"]
payload = json.dumps({"app_id": c["appId"], "app_secret": c["appSecret"]}).encode()
req = urllib.request.Request(
"https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal",
data=payload, headers={"Content-Type": "application/json"}, method="POST")
return json.loads(urllib.request.urlopen(req).read())["tenant_access_token"]
All API calls use header: Authorization: Bearer {token}
| Operation | Limit |
|---|---|
| Read (GET) | 5 req/sec per app |
| Write (POST/PATCH/DELETE) | 3 req/sec per app, 3 req/sec per document |
Use time.sleep(0.35) between write calls. For reads, time.sleep(0.25).
Base URL: https://open.feishu.cn/open-apis/docx/v1/documents
GET /docx/v1/documents/{doc}/blocks/{block_id}
Returns single block with full content (type, elements, children IDs, styles).
Ces informations proviennent de l’analyse indexée et peuvent être anciennes. Vérifiez les fichiers actuels.
# Feishu Block Operations
Direct REST API operations for Feishu cloud documents when the `feishu_doc` tool's built-in actions don't cover your needs.
## When to Use This (vs feishu_doc)
| Need | Use |
|------|-----|
| Read/write/append document | `feishu_doc` |
| Create simple table | `feishu_doc` `create_table_with_values` |
| Upload image/file | `feishu_doc` `upload_image`/`upload_file` |
| **Batch update 200 cells at once** | **This skill** |
| **Insert content at exact position** | **This skill** (or `feishu-md2blocks`) |
| **Traverse block tree** | **This skill** |
| **Table row/column insert/delete** | **This skill** |
| **Merge/unmerge table cells** | **This skill** |
| **Replace images in-place** | **This skill** |
| **Delete blocks by index range** | **This skill** |
## Authentication
Get tenant access token from OpenClaw config:
```python
import json, urllib.request
def get_feishu_token():
with open(os.path.expanduser("~/.openclaw/openclaw.json")) as f:
c = json.load(f)["channels"]["feishu"]
payload = json.dumps({"app_id": c["appId"], "app_secret": c["appSecret"]}).encode()
req = urllib.request.Request(
"https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal",
data=payload, headers={"Content-Type": "application/json"}, method="POST")
return json.loads(urllib.request.urlopen(req).read())["tenant_access_token"]
```
All API calls use header: `Authorization: Bearer {token}`
## Rate Limits
| Operation | Limit |
|-----------|-------|
| Read (GET) | 5 req/sec per app |
| Write (POST/PATCH/DELETE) | 3 req/sec per app, 3 req/sec per document |
Use `time.sleep(0.35)` between write calls. For reads, `time.sleep(0.25)`.
## API Reference
Base URL: `https://open.feishu.cn/open-apis/docx/v1/documents`
### 1. Get Block
```
GET /docx/v1/documents/{doc}/blocks/{block_id}
```
Returns single block with full content (type, elements, children IDs, styles).
### 2. Get Children (with optional full tree)
```...Search and hire real humans for tasks — photography, delivery, research, and more
Reusable skill templates for OpenClaw AI agents. Templates for API integration, data processing, web scraping, CLI tools, and file processing.
Query historical crypto market data from 0xArchive across Hyperliquid, Lighter.xyz, and HIP-3. Covers orderbooks, trades, candles, funding rates, open interest, liquidations, and data quality. Use when the user...
Install, configure, and manage 1-SEC — an open-source, all-in-one cybersecurity platform (16 modules, single binary) on Linux servers and VPS instances. Use when the user asks to secure a server, install securi...