jike-publisher
Publish posts to Jike (即刻) using browser automation. Use when the user wants to post content to Jike, share updates on Jike, or automate Jike posting. Suppor...
MIT-0 · Free to use, modify, and redistribute. No attribution required.
⭐ 0 · 29 · 0 current installs · 0 all-time installs
by咕咚@maoruibin
MIT-0
Security Scan
OpenClaw
Benign
high confidencePurpose & Capability
Name/description align with the behavior: the skill automates a browser to post to Jike. There are no unrelated environment variables or external services requested. One mismatch: the skill writes a state file under the user's home (~/.openclaw/workspace-distribute/memory/jike-state.json) but the registry metadata declared no required config paths; that filesystem access is plausible for state tracking but should have been declared.
Instruction Scope
SKILL.md instructions stay within the stated purpose: they navigate web.okjike.com, snapshot the DOM, click/type/send, and verify. The instructions explicitly require a logged-in managed browser profile and recommend snapshot-before-each-action. The only additional scope is writing/reading a local state JSON file to track last post, which is documented in the SKILL.md and implemented in scripts/post_jike.py.
Install Mechanism
Instruction-only skill with an optional example Python script; there is no install spec and no downloads. No third-party packages or remote binaries are fetched by the skill files themselves.
Credentials
The skill requests no environment variables or credentials. It relies on a managed browser session (profile="openclaw") rather than API keys; that matches its browser-automation approach and is proportionate to its purpose.
Persistence & Privilege
The skill is not forced-always and can be invoked by the user. It writes a per-user state file under the home directory (~/.openclaw/.../jike-state.json). Writing this file is reasonable for tracking publish history, but it is persistent filesystem access and should be reviewed by users who care about local file writes. The skill does not modify other skills or system-wide configuration.
Assessment
This skill appears to be what it claims: a browser-automation publisher for Jike. Before installing or enabling it: (1) review the managed browser profile it will use — the agent will act in that browser session and post as whoever is logged in; (2) be aware it will create and update a state file at ~/.openclaw/workspace-distribute/memory/jike-state.json (the registry metadata did not declare config paths), so if you have privacy concerns inspect or relocate that path; (3) run the example script manually first to verify behavior, and avoid granting it autonomous invocation if you prefer manual control over posting; (4) ensure you want automated posts to a public social account and observe rate-limit guidance to avoid accidental spam.Like a lobster shell, security has layers — review code before you run it.
Current versionv1.0.0
Download zipblog post jikelatest
License
MIT-0
Free to use, modify, and redistribute. No attribution required.
SKILL.md
Jike Publisher
Automate posting to Jike (即刻) using browser automation through OpenClaw's managed browser.
Prerequisites
- Jike account must be logged in via managed browser (profile="openclaw")
- Browser must have active session with valid cookies
- Navigate to https://web.okjike.com/ first to ensure login
Quick Start
Basic Post
# 1. Prepare content with Unicode escape (for Chinese text)
content = "刚刚看到一篇很棒的技术文章!"
escaped_content = content.encode('unicode_escape').decode('ascii')
# 2. Navigate to Jike homepage
browser(action="navigate", targetUrl="https://web.okjike.com/following", targetId=<tab_id>)
# 3. Get page snapshot to find elements
browser(action="snapshot", targetId=<tab_id>)
# 4. Click the post textbox (ref from snapshot)
# Look for: textarea or contenteditable div
browser(action="act", request={"kind": "click", "ref": "<textbox_ref>"}, targetId=<tab_id>)
# 5. Type content with Unicode escape
browser(action="act", request={"kind": "type", "ref": "<textbox_ref>", "text": escaped_content}, targetId=<tab_id>)
# 6. Get fresh snapshot to find send button
browser(action="snapshot", targetId=<tab_id>)
# 7. Click send button (ref from snapshot, usually "发布" text)
browser(action="act", request={"kind": "click", "ref": "<send_ref>"}, targetId=<tab_id>)
# 8. Wait and verify
sleep(3)
browser(action="snapshot", targetId=<tab_id>)
Element References (需要实际获取)
即刻的页面元素引用需要通过 snapshot 实际获取,常见元素:
- Post textbox: 通常在页面顶部的输入框
- Send button: "发布" 按钮
- Topic button: 话题选择按钮(可选)
重要: 元素引用会频繁变化,每次操作前都要先 snapshot!
Content Features
支持的内容类型
- 纯文本: 直接输入
- Emoji: 可以直接使用 (如 💪🎉)
- 话题: 使用 #话题# 格式
- 链接: 直接粘贴 URL 会自动展开
- 换行: 使用 \n
内容限制
- 最大长度: 即刻没有严格字数限制,建议 200-500 字
- 推荐长度: 100-200 字更易互动
Workflows
Workflow 1: 简单发布
- 打开 https://web.okjike.com/following
- Snapshot 获取元素引用
- 点击输入框
- 输入内容
- 点击发布
- 验证成功
Workflow 2: 带话题发布
- 同 Workflow 1
- 输入内容时包含 #话题#
- 发布
State Management
记录发布历史到 memory/jike-state.json:
{
"lastPublishTime": 1740880260,
"lastPublishDate": "2026-03-16T12:38:00+08:00",
"lastContent": "Your last post content..."
}
Error Handling
常见问题
-
登录过期
- 症状: 跳转到登录页
- 解决: 手动登录后重试
-
找不到元素
- 症状: ref 无效
- 解决: 重新 snapshot 获取最新 ref
-
发布按钮禁用
- 症状: 按钮不可点击
- 解决: 检查内容是否为空
-
内容未出现
- 症状: 无错误但看不到内容
- 解决: 等待几秒,刷新页面
Best Practices
- Unicode 转义: 中文内容使用转义
- 先 snapshot: 元素引用会变化
- 分步操作: 点击 → 输入 → snapshot → 发布
- 验证: 发布后检查是否成功
- 速率限制: 建议间隔 60 秒以上
- 状态记录: 更新 jike-state.json
Technical Details
浏览器自动化
- Profile: openclaw (托管浏览器)
- 方法: Chrome DevTools Protocol (CDP)
- 会话: 基于 Cookie,重启后保持
- 无需 API: 纯浏览器自动化
Request 格式
// ✅ 正确
request={"kind": "type", "ref": "eXXX", "text": "content"}
// ❌ 错误
request="{\"kind\": \"type\", \"ref\": \"eXXX\", \"text\": \"content\"}"
Unicode 转义(重要!)
问题: 中文引号(""、'')会导致 JSON 解析错误
解决: 使用 Unicode 转义:
# 转换中文为 Unicode 转义
text = "刚刚看到一篇很棒的技术文章"
escaped = text.encode('unicode_escape').decode('ascii')
# 结果: \u521a\u521a\u770b\u5230\u4e00\u7bc87\u5f88\u68d2\u7684\u6280\u672f\u6587\u7ae0
Reference Files
- EXAMPLES.md: 实际发布示例
- TROUBLESHOOTING.md: 详细错误解决方案
- UNICODE_ESCAPE.md: Unicode 转义完整指南
Scripts
- post_jike.py: 独立 Python 脚本(可选)
Files
8 totalSelect a file
Select a file to preview.
Comments
Loading comments…
