douyin-send-message
by calvin-dean
在抖音网页版发送私信消息。当用户想发送抖音私信、提醒续火花、或者提到"抖音发消息"、"发抖音私信"、"douyin send message"时触发。支持快速查找联系人、自动发送并关闭页面。
安装
claude skill add --url https://github.com/openclaw/skills文档
抖音私信发送
参数
调用时传入两个参数(由调用方实时提供,不要写死):
联系人:下拉列表中显示的联系人名字(可以是完整名字或部分匹配)消息内容:要发送的具体内容(字符串,支持 emoji)
执行步骤
Step 1: 打开私信列表页面
javascript
browser(action="open", url="https://www.douyin.com/chat", profile="openclaw")
browser(action="act", kind="wait", timeMs=2000, targetId="<pageId>")
Step 2: 查找并点击目标联系人
用一条 snapshot 搞定查找(默认 snapshot 包含 ref,速度较快):
javascript
browser(action="snapshot", targetId="<pageId>")
在结果中找到目标联系人的 listitem ref(格式:listitem [ref=e数字],在联系人名字元素附近)。
然后直接点击 ref:
javascript
browser(action="act", ref="<ref>", kind="click", targetId="<pageId>")
browser(action="act", kind="wait", timeMs=1000, targetId="<pageId>")
Step 3: 输入并发送
javascript
browser(action="act", kind="evaluate", fn="() => { var msg = 'MESSAGE_CONTENT'; var inputs = document.querySelectorAll('[contenteditable=\"true\"]'); for (var input of inputs) { var rect = input.getBoundingClientRect(); if (rect.width > 0 && rect.height > 0) { input.focus(); for (var i = 0; i < msg.length; i++) { document.execCommand('insertText', false, msg[i]); } return 'OK'; } } return 'No input'; }", targetId="<pageId>")
browser(action="act", kind="press", key="Enter", targetId="<pageId>")
browser(action="act", kind="wait", timeMs=1000, targetId="<pageId>")
Step 4: 关闭页面
javascript
browser(action="close", targetId="<pageId>")
关键 DOM(2026-03-22 验证)
- 私信列表页面:
https://www.douyin.com/chat - 列表项结构:
listitem [ref=e数字],在联系人名字元素附近 - 聊天输入框:
[contenteditable="true"],class 含messageEditorinputArea - 必须用
document.execCommand('insertText')逐字输入
执行流程(最优步骤数)
open→ 等 2ssnapshot(默认,含 ref)→ 找到联系人的listitem refclickref → 等 1sevaluate输入 →pressEnter → 等 1sclose
总计 5 个 browser 操作,平均总耗时约 40-60 秒(主要瓶颈在浏览器工具自身延迟,无法进一步优化)。
注意事项
TARGET_NAME和MESSAGE_CONTENT是占位符,调用时替换为实际值- 发送完毕后必须关闭页面释放资源
- 建议超时 90 秒
- 联系人名字支持部分匹配,如"小楠子"可匹配"小楠子爱跳舞"