Openclaw-bestroll-skills feishu-user
Feishu document operations (User Access Token version). Use user access token for authentication. When you need to read, create, write, or append Feishu documents.
install
source · Clone the upstream repo
git clone https://github.com/evan966890/openclaw-bestroll-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/evan966890/openclaw-bestroll-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/feishu-user" ~/.claude/skills/evan966890-openclaw-bestroll-skills-feishu-user && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/evan966890/openclaw-bestroll-skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/feishu-user" ~/.openclaw/skills/evan966890-openclaw-bestroll-skills-feishu-user && rm -rf "$T"
manifest:
skills/feishu-user/SKILL.mdsource content
Feishishu document operations using useru User
Fe access token authentication. Call Feishu Open API directly via REST API.
Install Dependencies
pip install requests
Quick Start
from feishu_client import FeishuClient # Initialize client client = FeishuClient(user_access_token="u-xxx")
Get User Access Token
Step 1: Get App Credentials from Feishu Open Platform
Prepare the following:
- APP_ID - App ID (from Feishu Open Platform app settings)
- APP_SECRET - App Secret (from Feishu Open Platform app settings)
- REDIRECT_URI - Authorization callback URL
Enable these permissions:
- Document operationsdocx:document
- Cloud drive searchdrive:drive.search:readonly
- Document searchsearch:docs:read
Step 2: Generate Authorization URL
https://accounts.feishu.cn/open-apis/authen/v1/authorize?client_id={YOUR_APP_ID}&response_type=code&redirect_uri={YOUR_REDIRECT_URI}&scope=docx%3Adocument%20drive%3Adrive.search%3Areadonly%20search%3Adocs%3Aread
Step 3: Exchange for Token
curl -X POST "https://open.feishu.cn/open-apis/authen/v1/access_token" \ -H "Content-Type: application/json" \ -d '{ "grant_type": "authorization_code", "code": "{YOUR_CODE}", "app_id": "{YOUR_APP_ID}", "app_secret": "{YOUR_APP_SECRET}" }'
The returned
access_token is your user_access_token.
Usage Examples
from feishu_client import FeishuClient # Initialize client = FeishuClient(user_access_token="u-xxx") # Read document content = client.read_doc("doc_token") print(content) # Create document new_token = client.create_doc("My New Document") print(f"New document: {new_token}") # Write document client.write_doc("doc_token", "# Title\n\nContent") # Append content client.append_doc("doc_token", "## New Section\n\nMore content") # List all blocks blocks = client.list_blocks("doc_token") for block in blocks: print(block) # Get specific block block = client.get_block("doc_token", "block_id") # Update block client.update_block("doc_token", "block_id", "New content") # Delete block client.delete_block("doc_token", "block_id")
Convenience Functions
Don't want to create a client? Use functions directly:
from feishu_client import read_document, create_document, write_document, append_document # Read content = read_document("doc_token", user_access_token="u-xxx") # Create new_token = create_document("Title", user_access_token="u-xxx") # Write write_document("doc_token", "# Content", user_access_token="u-xxx") # Append append_document("doc_token", "## More", user_access_token="u-xxx")
API Reference
FeishuClient
| Method | Description |
|---|---|
| Read document content |
| Create new document |
| Write document (overwrite) |
| Append content to end |
| List all blocks |
| Get specific block |
| Update block content |
| Delete block |
Notes
has an expiration time, needs periodic refreshuser_access_token- The
in authorization URL must be enabled in Feishu Open Platformscope - This skill accesses personal cloud documents using user identity
Related Links
- Feishu Open Platform: https://open.feishu.cn
- Document API: https://open.feishu.cn/document/ukTMukTMukTM/uADOwUjLwgDMzCM4ATm
Token Auto Refresh
Use
feishu_token.py script for automatic token refresh.
Install Dependencies
pip install requests
First Authorization
# 1. Generate authorization URL python feishu_token.py --app-id YOUR_APP_ID --app-secret YOUR_SECRET --redirect-uri YOUR_REDIRECT_URI --url
After user authorizes, will callback to
YOUR_REDIRECT_URI?code=XXX
# 2. Use authorization code to get token python feishu_token.py --app-id YOUR_APP_ID --app-secret YOUR_SECRET --code AUTH_CODE
Token is automatically saved to
~/.config/claw-feishu-user/config.json
Refresh Token
python feishu_token.py --app-id YOUR_APP_ID --app-secret YOUR_SECRET --refresh
In Code
import json import os # Read cached token config_path = os.path.expanduser("~/.config/claw-feishu-user/config.json") with open(config_path) as f: config = json.load(f) # Use token client = FeishuClient(user_access_token=config["access_token"])