@shixing.xingshi/feishu-for-user
v2026.2.14
Published
OpenClaw Feishu user-identity tools (UAT + doc)
Downloads
62
Readme
Feishu For User Extension
Runs Feishu actions as user identity via user_access_token.
Tools
feishu_user_uat: OAuth flow and token managementfeishu_user_doc: Create Feishu Docx as userfeishu_user_search: Feishu knowledge QA search as userfeishu_user_calendar: Query user primary calendar and list events by time window
Install location
Put this folder under:
~/.openclaw/extensions/feishu_for_user
Session scope recommendation
This plugin binds Feishu open_id tokens per DM sender. Use DM scope
per-channel-peer so each sender has an isolated session key.
If DM sessions are shared (for example main), tool calls without explicit
sender_key/user_access_token are blocked to prevent cross-user token mix.
Config example
{
"plugins": {
"allow": ["feishu_for_user"],
"entries": {
"feishu_for_user": {
"enabled": true,
"config": {
"appId": "cli_xxx",
"appSecret": "xxx",
"domain": "feishu",
"redirectUri": "http://127.0.0.1:18789/feishu/callback",
"tokenStorePath": "~/.openclaw/credentials/feishu-for-user-token.json"
}
}
}
}
}tokenStorePath is required.
feishu_user_uat usage
- Generate auth URL:
{ "action": "authorize" }Finish consent in browser. If your
redirectUripoints to OpenClaw gateway (for examplehttp://127.0.0.1:18789/feishu/callback), UAT is saved automatically.Optional manual exchange (only when auto callback cannot reach OpenClaw):
{
"action": "callback",
"callback_url": "http://127.0.0.1:18789/feishu/callback?code=xxx&state=xxx"
}- Optional status:
{ "action": "status" }open_id is now used as storage key, and sender->open_id binding is auto-derived from DM sessionKey by plugin hook.
feishu_user_doc usage
Create a doc using stored UAT:
{ "title": "User doc from OpenClaw" }Create in specific folder:
{ "title": "Roadmap", "folder_token": "fldcn..." }Overwrite (replace) an existing document with markdown content:
{
"action": "overwrite",
"doc_token": "X3g2d...",
"content": "# New Content\n\nThis will replace previous document body."
}feishu_user_search usage
{
"query": "报销流程",
"enterprise_knowledge_source": {
"entities": [
{ "entity_id": "wiki", "searchable": false },
{ "entity_id": "doc", "searchable": false }
]
}
}If your DM sessions are not sender-isolated (for example shared main session), tools are blocked to avoid cross-user token mix.
enterprise_knowledge_source is always included in request.
The tool forces the following to enabled:
space.searchable = truewiki.searchable = truemessage.searchable = truehelpdesk_faq.searchable = truelingo.searchable = trueminutes.searchable = truemail.searchable = truecomment.wiki_searchable = truecomment.space_searchable = true
feishu_user_calendar usage
Query current user's primary calendar events:
{
"query": "中午 吃饭",
"start_time": "2026-02-16T00:00:00+08:00",
"end_time": "2026-02-16T23:59:59+08:00"
}Behavior:
- First calls calendar primary API to resolve
calendar_id - Then calls calendar event list API with the time window
- Returns both
eventsandmatched_events(filtered byqueryover title/description/location/organizer)
