返回顶部
l

line-clientLINE客户端

LINE messaging integration via Chrome extension gateway. Send/read LINE messages, manage contacts, groups, profile, and reactions. Authenticate with QR code login. Provides HMAC-signed API access through the Chrome extension gateway (line-chrome-gw.line-apps.com).

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
537
下载量
免费
免费
3
收藏
概述
安装方式
版本历史

line-client

LINE 客户端技能

通过 Chrome 扩展网关 JSON API 实现的完整 LINE 消息客户端。

仓库与文件

  • - 仓库: /data/workspace/line-client (github.com/2manslkh/line-api)
  • 主客户端: src/chromeclient.py → LineChromeClient
  • 二维码登录: src/auth/qrlogin.py → QRLogin
  • HMAC 签名器: src/hmac/signer.js(Node.js,自动启动于端口 18944)
  • 令牌存储: ~/.line-client/tokens.json
  • 证书缓存: ~/.line-client/sqrcert
  • WASM 文件: lstm.wasm + lstmSandbox.js(必需,位于仓库根目录)

快速开始

python
import json
from pathlib import Path
from src.chrome_client import LineChromeClient

tokens = json.loads((Path.home() / .line-client / tokens.json).read_text())
client = LineChromeClient(authtoken=tokens[authtoken])

发送消息

client.send_message(U..., 你好!)

获取个人资料

profile = client.get_profile()

令牌约 7 天过期。如果过期(APIError(10051)),重新运行二维码登录。

二维码登录(身份验证)

二维码登录需要用户交互:扫描手机上的二维码 + 输入 PIN 码。

python
from src.hmac import HmacSigner
from src.auth.qr_login import QRLogin
import qrcode

signer = HmacSigner(mode=server)
login = QRLogin(signer)
result = login.run(
onqr=lambda url: sendqrimageto_user(qrcode.make(url)),
onpin=lambda pin: sendpintouser_IMMEDIATELY(pin), # 时间敏感!
on_status=lambda msg: print(msg),
)

result.authtoken, result.mid, result.refreshtoken

关键: PIN 码必须在约 60 秒内送达用户。在 on_pin 触发时立即发送。

二维码登录状态机

  1. 1. createSession → 会话 ID
  2. createQrCode → 回调 URL(追加 ?secret={curve25519_pubkey}&e2eeVersion=1)
  3. checkQrCodeVerified — 轮询直到扫描(使用 X-Line-Session-ID,无 origin 头)
  4. verifyCertificate — 即使失败也必须调用(必需的状态转换!)
  5. createPinCode → 6 位 PIN 码(如果步骤 4 中证书已验证则跳过)
  6. checkPinCodeVerified — 轮询直到用户输入 PIN 码
  7. qrCodeLoginV2 → JWT 令牌 + 证书 + 刷新令牌

服务端登录脚本

bash python scripts/qrloginserver.py /tmp/qr.png

向标准输出发送 JSON 事件:{event: qr, path: ..., url: ...},{event: pin, pin: 123456},{event: done, mid: U...}。

所有 API 方法

联系人与好友

方法参数描述
getprofile()获取自己的个人资料(displayName、mid、statusMessage 等)
getcontact(mid)
mid: str | 获取单个联系人的个人资料 | | get_contacts(mids) | mids: list[str] | 获取多个联系人 | | getallcontact_ids() | — | 列出所有好友 MID | | findcontactby_userid(userid) | userid: str | 通过 LINE ID 搜索 | | findandaddcontactby_mid(mid) | mid: str | 通过 MID 添加好友 | | findcontactsby_phone(phones) | phones: list[str] | 通过手机号搜索 | | addfriendby_mid(mid) | mid: str | 添加好友(RelationService) | | getblockedcontact_ids() | — | 列出已屏蔽的 MID | | getblockedrecommendation_ids() | — | 列出已屏蔽的推荐 | | block_contact(mid) | mid: str | 屏蔽联系人 | | unblock_contact(mid) | mid: str | 取消屏蔽联系人 | | block_recommendation(mid) | mid: str | 屏蔽好友推荐 | | updatecontactsetting(mid, flag, value) | mid, flag: int, value: str | 更新联系人设置(例如静音) | | getfavoritemids() | — | 列出收藏的联系人 MID | | getrecommendationids() | — | 列出好友推荐 |

消息

方法参数描述
sendmessage(to, text, ...)to: str, text: str, replyto: str(可选)发送文本消息。支持通过 replyto=messageid 回复
unsendmessage(messageid)
message_id: str | 撤回/删除已发送的消息 | | getrecentmessages(chatid, count=50) | chatid: str | 获取聊天中的最新消息 | | getpreviousmessages(chatid, endseq, count=50) | chatid, endseq: int | 分页历史记录(更早的消息) | | getmessagesbyids(messageids) | message_ids: list[str] | 获取特定消息 | | getmessageboxes(count=50) | — | 获取聊天列表及最后一条消息(收件箱视图) | | getmessageboxesbyids(chatids) | chatids: list[str] | 获取特定聊天及最后一条消息 | | getmessagereadrange(chatids) | chat_ids: list[str] | 获取已读回执信息 | | sendchatchecked(chatid, lastmessageid) | chatid, lastmessageid: str | 标记消息为已读 | | sendchatremoved(chatid, lastmessageid) | chatid, lastmessageid: str | 从收件箱移除聊天 | | sendpostback(to, postbackdata) | to, postback_data: str | 发送回传(机器人交互) |

聊天与群组

方法参数描述
getchats(chatids, withmembers=True, withinvitees=True)chatids: list[str]获取聊天/群组详情
getallchatmids()
— | 列出所有聊天 MID(群组 + 邀请) | | createchat(name, targetmids) | name: str, target_mids: list[str] | 创建新群聊 | | acceptchatinvitation(chatid) | chatid: str | 接受群组邀请 | | rejectchatinvitation(chatid) | chatid: str | 拒绝群组邀请 | | inviteintochat(chatid, mids) | chatid: str, mids: list[str] | 邀请用户加入群组 | | cancelchatinvitation(chatid, mids) | chatid: str, mids: list[str] | 取消待处理的邀请 | | deleteotherfromchat(chatid, mids) | chat_id: str, mids: list[str] | 将成员踢出群组 | | leavechat(chatid) | chat_id: str | 离开群聊 | | updatechat(chatid, updates) | chat_id: str, updates: dict | 更新群组名称/设置 | | setchathiddenstatus(chatid, hidden) | chat_id: str, hidden: bool | 归档/取消归档聊天 | | getrooms(roomids) | room_ids: list[str] | 获取旧版房间信息 | | inviteintoroom(roomid, mids) | roomid: str, mids: list[str] | 邀请加入旧版房间 | | leaveroom(roomid) | room_id: str | 离开旧版房间 |

反应

方法参数描述
react(messageid, reactiontype)messageid: str, type: int对消息做出反应。类型:2=赞,3=喜爱,4=笑,5=惊讶,6=悲伤,7=愤怒
cancelreaction(messageid)
messageid: str | 移除你的反应 |

个人资料与设置

| 方法

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 line-client-1776310333 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 line-client-1776310333 技能

通过命令行安装

skillhub install line-client-1776310333

下载

⬇ 下载 line-client v1.0.0(免费)

文件大小: 4.22 KB | 发布时间: 2026-4-16 17:43

v1.0.0 最新 2026-4-16 17:43
Initial release: LINE messaging via Chrome extension gateway

Archiver·手机版·闲社网·闲社论坛·智能体自动化市场· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2026 闲社网·AI智能体论坛·AI自动化解决方案·http://xianshe.com

p2p_official_large
返回顶部