返回 Skill 列表
extension
分类: 其它需要 API Key

FamilyWall

与FamilyWall家庭组织平台互动,管理日历事件、购物清单、任务、家庭消息、成员位置、膳食计划等。

person作者: snowsand-enterpriseshubclawhub

FamilyWall Integration

FamilyWall family organization platform integration for managing calendars, lists, messaging, meal plans, recipes, and more.

Authentication

FamilyWall uses email/password authentication with session tokens. Required environment variables:

  • FAMILYWALL_EMAIL - FamilyWall account email
  • FAMILYWALL_PASSWORD - FamilyWall account password

These should be set in ~/.openclaw/.env.

Test connection:

source ~/.openclaw/.env && {baseDir}/scripts/familywall.py status

Quick Reference

All operations use the {baseDir}/scripts/familywall.py script:

| Operation | Command | |-----------|---------| | Status & Members | | | Account/family status | {baseDir}/scripts/familywall.py status | | List family members | {baseDir}/scripts/familywall.py members | | Calendar Events | | | List upcoming events | {baseDir}/scripts/familywall.py events list --days 7 | | Create event | {baseDir}/scripts/familywall.py events create "Title" --start "2026-03-10T14:00:00" --end "2026-03-10T15:00:00" | | Create all-day event | {baseDir}/scripts/familywall.py events create "Holiday" --start "2026-03-10" --end "2026-03-11" --allday | | Delete event | {baseDir}/scripts/familywall.py events delete EVENT_ID | | Shopping Lists / Tasks | | | List all lists | {baseDir}/scripts/familywall.py lists list | | View list items | {baseDir}/scripts/familywall.py lists items LIST_ID | | Add item to list | {baseDir}/scripts/familywall.py lists add LIST_ID "Milk" | | Add with quantity | {baseDir}/scripts/familywall.py lists add LIST_ID "Eggs" --quantity "12" | | Check item (purchased) | {baseDir}/scripts/familywall.py lists check ITEM_ID | | Uncheck item | {baseDir}/scripts/familywall.py lists check ITEM_ID --uncheck | | Create new list | {baseDir}/scripts/familywall.py lists create "Groceries" --type SHOPPING | | Create todo list | {baseDir}/scripts/familywall.py lists create "Chores" --type TODO | | Messaging | | | List threads | {baseDir}/scripts/familywall.py messages threads | | Read messages | {baseDir}/scripts/familywall.py messages read THREAD_ID --limit 20 | | Send message | {baseDir}/scripts/familywall.py messages send THREAD_ID "Hello family!" | | Media | | | List media in thread | {baseDir}/scripts/familywall.py media list THREAD_ID | | Download by URL | {baseDir}/scripts/familywall.py media download --url "PICTURE_URL" -o file.jpg | | Download by media ID | {baseDir}/scripts/familywall.py media download --media-id MEDIA_ID --thread-id THREAD_ID | | Download all from thread | {baseDir}/scripts/familywall.py media download-all THREAD_ID --output-dir ./media | | Meal Planner | | | View meal plan | {baseDir}/scripts/familywall.py meals list --days 7 | | Add meal to plan | {baseDir}/scripts/familywall.py meals add "Tacos" --date 2026-05-15 --type DINNER | | Recipes | | | Create recipe | {baseDir}/scripts/familywall.py recipes create "Pasta" --ingredients "noodles\nsauce" --instructions "1. Boil\n2. Mix" | | Import recipe from URL | {baseDir}/scripts/familywall.py recipes from-url "https://example.com/recipe" | | List recipe categories | {baseDir}/scripts/familywall.py recipes categories | | Location | | | Get member locations | {baseDir}/scripts/familywall.py locations | | Wall / Feed | | | Get family wall | {baseDir}/scripts/familywall.py wall --limit 20 |

Common Workflows

Check upcoming family events

source ~/.openclaw/.env
{baseDir}/scripts/familywall.py events list --days 7

Add items to shopping list

source ~/.openclaw/.env
# First get the list ID
{baseDir}/scripts/familywall.py lists list
# Then add items
{baseDir}/scripts/familywall.py lists add "tasklist/12345_67890" "Milk"
{baseDir}/scripts/familywall.py lists add "tasklist/12345_67890" "Bread"
{baseDir}/scripts/familywall.py lists add "tasklist/12345_67890" "Eggs" --quantity "12"

Create a calendar event

source ~/.openclaw/.env
{baseDir}/scripts/familywall.py events create "Family Dinner" \
  --start "2026-05-15T18:00:00" \
  --end "2026-05-15T20:00:00" \
  --location "Home" \
  --description "Weekly family dinner"

Send a family message

source ~/.openclaw/.env
# Get thread list first
{baseDir}/scripts/familywall.py messages threads
# Send message to a thread
{baseDir}/scripts/familywall.py messages send "imthread/12345_67890" "Dinner is ready!"

Download media from messages

Messages can contain photos, audio, and other media files. The medias array in message responses includes pictureUrl for downloading.

source ~/.openclaw/.env
# List all media in a thread
{baseDir}/scripts/familywall.py media list "imThread/12345"

# Download a specific file by URL (from media list output)
{baseDir}/scripts/familywall.py media download --url "https://api.familywall.com/media/..." -o photo.jpg

# Download by media ID (looks up the URL automatically)
{baseDir}/scripts/familywall.py media download --media-id "media/12345_67890" --thread-id "imThread/12345"

# Download ALL media from a thread into a directory
{baseDir}/scripts/familywall.py media download-all "imThread/12345" --output-dir ./family_media

# Download media from a specific message only
{baseDir}/scripts/familywall.py media download-all "imThread/12345" --message-id "message/12345_67890" --output-dir ./media

Plan meals for the week

source ~/.openclaw/.env
# View current meal plan
{baseDir}/scripts/familywall.py meals list --days 7
# Add meals
{baseDir}/scripts/familywall.py meals add "Spaghetti" --date 2026-05-13 --type DINNER
{baseDir}/scripts/familywall.py meals add "Pancakes" --date 2026-05-14 --type BREAKFAST
{baseDir}/scripts/familywall.py meals add "Grilled Chicken" --date 2026-05-14 --type DINNER

Meal types: BREAKFAST, LUNCH, DINNER, SNACK

Create a recipe

source ~/.openclaw/.env
{baseDir}/scripts/familywall.py recipes create "Banana Smoothie" \
  --ingredients "2 bananas\n1 cup milk\n1 tbsp honey\nIce" \
  --instructions "1. Add all ingredients to blender\n2. Blend until smooth\n3. Serve immediately" \
  --prep-time 5 --serves 2 \
  --description "Quick healthy breakfast smoothie"

Import a recipe from a website

source ~/.openclaw/.env
{baseDir}/scripts/familywall.py recipes from-url "https://www.example.com/recipe/chocolate-cake"

Check family member locations

source ~/.openclaw/.env
{baseDir}/scripts/familywall.py locations

API Details

The FamilyWall API is at https://api.familywall.com/api. Authentication is session-based:

  1. Login via log2in endpoint with email/password
  2. Receive JSESSIONID cookie and tokenCsrf
  3. Include both on subsequent requests

Key API Endpoints

| Category | Endpoint | Description | |----------|----------|-------------| | Auth | log2in | Login with email/password | | Account | accgetallfamily | Get all family data | | Family | famlistfamily | List user's families | | Events | evtlist | List calendar events | | Events | evtcreate | Create event | | Events | evtdelete | Delete event | | Lists | tasklistlist | List all task/shopping lists | | Lists | tasklistget | Get list with items | | Lists | tasklistadd | Add item to list | | Lists | tasklistcheck | Check/uncheck item | | Lists | tasklistcreate | Create new list | | Messages | imthreadlist | List IM threads | | Messages | immessagelist2 | Get messages from thread (includes media) | | Messages | imsend | Send message | | Media | /media/... | Download media files (GET with session auth) | | Location | loclist | Get member locations | | Wall | walllist | Get wall/feed posts | | Meals | mplistinterval | List planned meals in range | | Meals | mpcreate | Add dish to meal plan | | Meals | mpmealput | Create/edit a meal | | Recipes | mprecipeput | Create/edit a recipe | | Recipes | mprecipeputbyurl | Create recipe from URL | | Recipes | mpcategorylist | List recipe categories | | Recipes | mpadditemtolist | Add meal ingredients to shopping list |

Request Format

All requests are POST with application/x-www-form-urlencoded body. Parameters use prefix notation:

  • a00 prefix for first call parameters
  • a01call, a02call, etc. for batched calls
  • partnerScope=Family required on all calls

Response Format

Responses are JSON with structure:

{
  "a00": {
    "r": {"r": <result_data>},  // Success
    "ex": {"ex": {"message": "..."}},  // Error
    "cn": "endpoint_name"
  }
}

Media in Messages

Messages from immessagelist2 include a medias array. Each media object contains:

| Field | Description | |-------|-------------| | mediaId | Unique media identifier (e.g. media/12345_67890) | | pictureUrl | Direct download URL (requires session auth cookie) | | mimeType | MIME type (image/jpeg, audio/mp4, etc.) | | name | Original filename | | datasize | File size in bytes | | resolutionX/Y | Image dimensions (images only) | | durationMs | Duration in milliseconds (audio/video only) | | readystate | Processing state (READY = downloadable) |

To download media, send an authenticated GET request to the pictureUrl with the JSESSIONID cookie and tokencsrf header.

Wall/feed posts may also contain media attachments with the same structure.

Error Handling

Common errors:

  • FizClassId 1: Account not found
  • FizClassId 4: Account identifier not validated
  • FizClassId 10: API key not found
  • FizClassId 26: Account blocked
  • FizClassId 502: Call not registered / missing parameter
  • FizClassId 503: Model does not exist
  • FizClassId 510: No family context (need to select family first)

Dependencies

  • Python 3.10+ (uses stdlib urllib if requests not available)
  • Optional: requests library for better HTTP handling

Full API Reference

The complete FamilyWall API reference (all endpoints, parameters, return types, and exceptions) is maintained on Confluence:

FamilyWall — API Reference