بنقرة واحدة
lark
Lark API for collaboration. Use when user mentions "Lark", "Lark docs", or asks about ByteDance workspace tools.
القائمة
Lark API for collaboration. Use when user mentions "Lark", "Lark docs", or asks about ByteDance workspace tools.
استنادا إلى تصنيف SOC المهني
Google Maps Platform API for geocoding, places, routes, and distance matrices. Use when user mentions "Google Maps", "geocode", "directions", "places API", route matrix, or asks to look up an address, route, or place metadata.
A high-fashion editorial video style - cold desaturated grade, dramatic high-contrast light, monumental clean architecture or backdrop, deliberate model pose, strong silhouette, and luxury material texture. Applies to fashion, beauty, luxury, and personal-brand subjects. Trigger on /fashion-editorial, "Fashion Editorial", "luxury fashion campaign", "high fashion video", or "editorial model film".
A hand-drawn fantasy animation video style - painterly 2D backgrounds, expressive simple characters, lush nature, soft diffused light, warm storybook color, and gentle magical wonder. Applies to any fantasy, character, nature, or adventure subject. Trigger on /hand-drawn-fantasy-anime, "hand-drawn fantasy animation", "painterly 2D fantasy", "storybook anime", or "warm forest animation".
A dark luxury product macro video style - premium materials in extreme close-up, black studio, pinpoint specular highlights, ultra-shallow focus, engraved or mechanical detail, and refined reveal pacing. Applies to watches, jewelry, pens, cameras, fragrance caps, and other high-end objects. Trigger on /luxury-product, "Luxury Product", "premium product macro", "dark luxury product video", or "metal detail reveal".
A sports performance advertising video style - athlete effort, gear and body close-ups, impact rhythm, motion blur, Dutch or low angles, high-contrast desaturated grade, and dramatic rim light. Applies to any sport, athlete, training action, or performance product. Trigger on /sports-performance-ad, "sports performance ad", "athletic commercial", "training commercial", or "sports brand film".
Playful-editorial presentation look — saturated colour fields, scalloped sunburst badges and pill chips, oversized stacked headlines. Carnival palette · Archivo + Manrope · pill radius. The design system (visual language).
| name | lark |
| description | Lark API for collaboration. Use when user mentions "Lark", "Lark docs", or asks about ByteDance workspace tools. |
If Lark requests fail after the Lark connector is connected, check the runtime token and API access:
zero doctor check-connector --env-name LARK_TOKEN
zero doctor check-connector --url https://open.larksuite.com/open-apis/bot/v3/info --method GET
LARK_TOKEN is the Lark API bearer token available after the Lark connector is connected; do not use it as an app secret.
Use this helper in shell examples to read the bearer token and fail clearly when it is missing from the runtime:
get_lark_token() {
if [ -z "${LARK_TOKEN:-}" ]; then
echo "Error: LARK_TOKEN is not set. Connect the Lark connector, then run zero doctor check-connector --env-name LARK_TOKEN." >&2
return 1
fi
printf '%s\n' "$LARK_TOKEN"
}
# Usage in commands
TOKEN=$(get_lark_token)
TOKEN=$(get_lark_token)
curl -X GET "https://open.larksuite.com/open-apis/bot/v3/info" \
-H "Authorization: Bearer ${TOKEN}"
Write to /tmp/lark_request.json:
{
"receive_id": "ou_xxx",
"msg_type": "text",
"content": "{\"text\": \"Hello World\"}"
}
TOKEN=$(get_lark_token)
curl -X POST "https://open.larksuite.com/open-apis/im/v1/messages?receive_id_type=open_id" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-d @/tmp/lark_request.json
Write to /tmp/lark_request.json:
{
"receive_id": "oc_xxx",
"msg_type": "text",
"content": "{\"text\": \"Group message\"}"
}
TOKEN=$(get_lark_token)
curl -X POST "https://open.larksuite.com/open-apis/im/v1/messages?receive_id_type=chat_id" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-d @/tmp/lark_request.json
Write to /tmp/lark_request.json:
{
"receive_id": "ou_xxx",
"msg_type": "post",
"content": "{\"zh_cn\": {\"title\": \"Title\", \"content\": [[{\"tag\": \"text\", \"text\": \"Content\"}]]}}"
}
TOKEN=$(get_lark_token)
curl -X POST "https://open.larksuite.com/open-apis/im/v1/messages?receive_id_type=open_id" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-d @/tmp/lark_request.json
Write to /tmp/lark_request.json:
{
"receive_id": "oc_xxx",
"msg_type": "interactive",
"content": "{\"header\": {\"title\": {\"tag\": \"plain_text\", \"content\": \"Alert\"}}, \"elements\": [{\"tag\": \"div\", \"text\": {\"tag\": \"plain_text\", \"content\": \"Message\"}}]}"
}
TOKEN=$(get_lark_token)
curl -X POST "https://open.larksuite.com/open-apis/im/v1/messages?receive_id_type=chat_id" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-d @/tmp/lark_request.json
Write to /tmp/lark_request.json:
{
"msg_type": "text",
"content": "{\"text\": \"Reply content\"}"
}
TOKEN=$(get_lark_token)
curl -X POST "https://open.larksuite.com/open-apis/im/v1/messages/om_xxx/reply" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-d @/tmp/lark_request.json
TOKEN=$(get_lark_token)
curl -X GET "https://open.larksuite.com/open-apis/im/v1/messages?container_id_type=chat&container_id=oc_xxx&page_size=20" \
-H "Authorization: Bearer ${TOKEN}"
Write to /tmp/lark_request.json:
{
"name": "Project Team",
"description": "Project discussion group",
"user_id_list": ["ou_xxx", "ou_yyy"]
}
TOKEN=$(get_lark_token)
curl -X POST "https://open.larksuite.com/open-apis/im/v1/chats?user_id_type=open_id" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-d @/tmp/lark_request.json
TOKEN=$(get_lark_token)
curl -X GET "https://open.larksuite.com/open-apis/im/v1/chats" \
-H "Authorization: Bearer ${TOKEN}"
TOKEN=$(get_lark_token)
curl -X GET "https://open.larksuite.com/open-apis/im/v1/chats/oc_xxx" \
-H "Authorization: Bearer ${TOKEN}"
Write to /tmp/lark_request.json:
{
"id_list": ["ou_xxx", "ou_yyy"]
}
TOKEN=$(get_lark_token)
curl -X POST "https://open.larksuite.com/open-apis/im/v1/chats/oc_xxx/members?member_id_type=open_id" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-d @/tmp/lark_request.json
Write to /tmp/lark_request.json:
{
"id_list": ["ou_xxx"]
}
TOKEN=$(get_lark_token)
curl -X DELETE "https://open.larksuite.com/open-apis/im/v1/chats/oc_xxx/members?member_id_type=open_id" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-d @/tmp/lark_request.json
TOKEN=$(get_lark_token)
curl -X GET "https://open.larksuite.com/open-apis/contact/v3/users/ou_xxx?user_id_type=open_id" \
-H "Authorization: Bearer ${TOKEN}"
Write to /tmp/lark_request.json:
{
"emails": ["user@example.com"],
"mobiles": ["+15551234567"],
"include_resigned": false
}
TOKEN=$(get_lark_token)
curl -X POST "https://open.larksuite.com/open-apis/contact/v3/users/batch_get_id?user_id_type=open_id" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-d @/tmp/lark_request.json
TOKEN=$(get_lark_token)
curl -X GET "https://open.larksuite.com/open-apis/contact/v3/departments?parent_department_id=0" \
-H "Authorization: Bearer ${TOKEN}"
TOKEN=$(get_lark_token)
curl -X GET "https://open.larksuite.com/open-apis/contact/v3/users/find_by_department?department_id=od_xxx&user_id_type=open_id" \
-H "Authorization: Bearer ${TOKEN}"
TOKEN=$(get_lark_token)
curl -X GET "https://open.larksuite.com/open-apis/calendar/v4/calendars" \
-H "Authorization: Bearer ${TOKEN}"
Write to /tmp/lark_request.json:
{
"summary": "Project Calendar",
"description": "Calendar for project events"
}
TOKEN=$(get_lark_token)
curl -X POST "https://open.larksuite.com/open-apis/calendar/v4/calendars" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-d @/tmp/lark_request.json
Note: Replace <calendar_id> with an actual calendar ID from List Calendars API.
TOKEN=$(get_lark_token)
# Convert ISO 8601 to Unix timestamp
START_TS=$(date -d "2025-01-15T10:00:00+08:00" +%s 2>/dev/null || date -j -f "%Y-%m-%dT%H:%M:%S%z" "2025-01-15T10:00:00+08:00" +%s)
END_TS=$(date -d "2025-01-15T11:00:00+08:00" +%s 2>/dev/null || date -j -f "%Y-%m-%dT%H:%M:%S%z" "2025-01-15T11:00:00+08:00" +%s)
# Write request with timestamps
cat > /tmp/lark_request.json <<EOF
{
"summary": "Team Meeting",
"description": "Weekly sync",
"start_time": {"timestamp": "${START_TS}"},
"end_time": {"timestamp": "${END_TS}"}
}
EOF
curl -X POST "https://open.larksuite.com/open-apis/calendar/v4/calendars/<calendar_id>/events" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-d @/tmp/lark_request.json
TOKEN=$(get_lark_token)
# Convert date range
START_TS=$(date -d "2025-01-01T00:00:00+08:00" +%s 2>/dev/null || date -j -f "%Y-%m-%dT%H:%M:%S%z" "2025-01-01T00:00:00+08:00" +%s)
END_TS=$(date -d "2025-01-31T23:59:59+08:00" +%s 2>/dev/null || date -j -f "%Y-%m-%dT%H:%M:%S%z" "2025-01-31T23:59:59+08:00" +%s)
curl -X GET "https://open.larksuite.com/open-apis/calendar/v4/calendars/<calendar_id>/events?start_time=${START_TS}&end_time=${END_TS}" \
-H "Authorization: Bearer ${TOKEN}"
TOKEN=$(get_lark_token)
curl -X GET "https://open.larksuite.com/open-apis/bot/v3/info" \
-H "Authorization: Bearer ${TOKEN}"
Write to /tmp/lark_request.json:
{
"receive_id": "oc_xxx",
"msg_type": "interactive",
"content": "{\"header\": {\"title\": {\"tag\": \"plain_text\", \"content\": \"System Alert\"}, \"template\": \"red\"}, \"elements\": [{\"tag\": \"div\", \"text\": {\"tag\": \"lark_md\", \"content\": \"**Error:** Service down\"}}]}"
}
TOKEN=$(get_lark_token)
curl -X POST "https://open.larksuite.com/open-apis/im/v1/messages?receive_id_type=chat_id" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-d @/tmp/lark_request.json
Write to /tmp/lark_request.json:
{
"name": "Q1 Project",
"description": "Q1 project discussion",
"user_id_list": ["ou_abc", "ou_def", "ou_ghi"]
}
TOKEN=$(get_lark_token)
curl -X POST "https://open.larksuite.com/open-apis/im/v1/chats?user_id_type=open_id" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-d @/tmp/lark_request.json
TOKEN=$(get_lark_token)
# Get root departments
curl -X GET "https://open.larksuite.com/open-apis/contact/v3/departments?parent_department_id=0" \
-H "Authorization: Bearer ${TOKEN}" | jq '.data.items[] | {id: .department_id, name: .name}'
# Get members in a department
curl -X GET "https://open.larksuite.com/open-apis/contact/v3/users/find_by_department?department_id=od_xxx&user_id_type=open_id" \
-H "Authorization: Bearer ${TOKEN}" | jq '.data.items[] | {id: .user_id, name: .name}'
TOKEN=$(get_lark_token)
START_TS=$(date -d "2025-01-20T09:00:00+08:00" +%s 2>/dev/null || date -j -f "%Y-%m-%dT%H:%M:%S%z" "2025-01-20T09:00:00+08:00" +%s)
END_TS=$(date -d "2025-01-20T10:30:00+08:00" +%s 2>/dev/null || date -j -f "%Y-%m-%dT%H:%M:%S%z" "2025-01-20T10:30:00+08:00" +%s)
# Write request with timestamps
cat > /tmp/lark_request.json <<EOF
{
"summary": "Sprint Planning",
"description": "Sprint 5 planning session",
"start_time": {"timestamp": "${START_TS}"},
"end_time": {"timestamp": "${END_TS}"}
}
EOF
curl -X POST "https://open.larksuite.com/open-apis/calendar/v4/calendars/<calendar_id>/events" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-d @/tmp/lark_request.json
| Type | msg_type | content Format |
|---|---|---|
| Text | text | {"text": "message"} |
| Rich Text | post | {"zh_cn": {"title": "...", "content": [...]}} |
| Image | image | {"image_key": "img_xxx"} |
| Card | interactive | {"header": {...}, "elements": [...]} |
| ID Type | Description | Example |
|---|---|---|
open_id | User open ID (default) | ou_xxx |
user_id | User ID | abc123 |
union_id | Union ID across apps | on_xxx |
email | User email address | user@example.com |
chat_id | Group chat ID | oc_xxx |
Authentication: Use the get_lark_token helper in shell examples so commands fail clearly when LARK_TOKEN is missing from the runtime.
Rate Limits: Lark has rate limits per app. Add delays for bulk operations to avoid hitting limits.
ID Types: Use open_id for most user operations. Use chat_id when targeting group chats.
Card Builder: Design complex interactive cards using Lark Card Builder: https://open.larksuite.com/tool/cardbuilder
Error Handling: Check the code field in responses. 0 means success, non-zero indicates an error.
Content Escaping: Message content must be JSON-escaped when passed as string. Use jq to build complex payloads:
CONTENT=$(jq -cn --arg text "Hello" '{text: $text}')
jq -n \
--arg receive_id "ou_xxx" \
--arg content "$CONTENT" \
'{receive_id: $receive_id, msg_type: "text", content: $content}' \
> /tmp/lark_request.json
Date Conversion: Calendar events require Unix timestamps. Use date command with appropriate flags for your OS:
date -d "2025-01-15T10:00:00+08:00" +%sdate -j -f "%Y-%m-%dT%H:%M:%S%z" "2025-01-15T10:00:00+08:00" +%s