Openclaw-bestroll-skills feishu-doc-editor

Feishu document creation and editing operations using OpenAPI. Activate when user needs to create, edit, or read Feishu documents programmatically.

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-doc-editor" ~/.claude/skills/evan966890-openclaw-bestroll-skills-feishu-doc-editor && 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-doc-editor" ~/.openclaw/skills/evan966890-openclaw-bestroll-skills-feishu-doc-editor && rm -rf "$T"
manifest: skills/feishu-doc-editor/SKILL.md
source content

Feishu Document Editor Skill

This skill provides comprehensive guidance for creating and editing Feishu documents using the Feishu OpenAPI.

Prerequisites

1. App Creation and Configuration

Create enterprise self-built app: Login to Feishu Open Platform, create an app and add "Bot" capability.

Apply for API permissions: In "Permission Management", apply for the following permissions:

  • Document editing:
    docx:document:write_only
  • Document viewing:
    docx:document:readonly

Publish app: Submit version and publish, ensuring the app coverage includes target users/departments.

2. Get Access Token

Call the self-built app get tenant_access_token interface:

curl -X POST https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal \
  -H "Content-Type: application/json" \
  -d '{"app_id": "your_app_id", "app_secret": "your_app_secret"}'

Response example:

{
  "code": 0,
  "tenant_access_token": "t-xxx",
  "expire": 7200
}

Core Operations

Extract Document ID

Get

document_id
from document URL:

Example URL:

https://bigdatacenter.feishu.cn/docx/HpK2dtGu9omhMAxV12zcB6i7ngd

document_id =

HpK2dtGu9omhMAxV12zcB6i7ngd

Grant App Document Permission

Manually add collaborator:

  • Open document in Feishu client → Click "..." in top right → "More" → "Add document app"
  • Search and add your app, grant "Can edit" permission.

Write Text Content

Interface: Create Block

  • Path parameters:

    document_id
    = document ID,
    block_id
    = document ID (root node is the document itself)

  • Request headers:

    Authorization: Bearer {tenant_access_token}
    Content-Type: application/json
    
  • Request body example (write "hello"):

    {
      "index": -1,
      "children": [
        {
          "block_type": 2,
          "text": {
            "elements": [
              {
                "text_run": {
                  "content": "hello"
                }
              }
            ]
          }
        }
      ]
    }
    

Read Document Content

Interface: Get Document Plain Text

curl -X GET "https://open.feishu.cn/open-apis/docx/v1/documents/{document_id}/plaintext" \
  -H "Authorization: Bearer {tenant_access_token}"

Response example:

{
  "code": 0,
  "data": {
    "content": "Document text content here"
  }
}

Common Issues

1. Permission Error (403 Forbidden)

  • Diagnosis: App not added as document collaborator, or
    tenant_access_token
    is invalid.
  • Solution: Re-add app as collaborator, or re-get
    tenant_access_token
    .

2. Missing Access Token (99991661)

  • Diagnosis: Request header does not carry
    Authorization: Bearer {token}
    .
  • Solution: Ensure
    tenant_access_token
    is correctly added to request header.

3. Document Not Found (404 Not Found)

  • Diagnosis:
    document_id
    is incorrect or document has been deleted.
  • Solution: Re-extract
    document_id
    from document URL.

Reference Documentation

  • Create Block Interface
  • Get Document Plain Text Interface
  • Permission Configuration Guide

Through the above steps, you can achieve editing Feishu documents via API, supporting add/delete/modify/query operations for multiple content types including text, tables, and images.