st/SKILL.md
2026-05-19 09:41:46 +08:00

3.6 KiB
Raw Blame History

name description argument-hint
stock 当用户发送「股票 代码」或「gp 代码」时触发。调用腾讯股票行情接口获取实时数据,再调用本地微信机器人发消息接口把股票信息发给当前用户。 参数为股票代码,例如 600519 或 sz000001

Stock Skill

描述

这是一个用于查询股票实时行情并直接发送给当前用户的技能。

当用户发送 股票 600519gp sz000001 时,调用腾讯股票行情接口获取实时数据,再调用本地微信机器人接口把格式化后的股票信息发出去。

这个仓库里额外提供了一个可执行脚本 scripts/stock.py,方便宿主机器人直接调用。

触发条件

  • 用户发送 股票 <股票代码>gp <股票代码>
  • 股票代码可以是纯数字(如 600519),也可以带市场前缀(如 sh600519sz000001

接口信息

  • 获取股票行情:https://qt.gtimg.cn/q={stock_code}
  • 请求方式:GET
  • 发消息接口:http://127.0.0.1:{ROBOT_WECHAT_CLIENT_PORT}/api/v1/robot/message/send/text
  • 请求方式:POST
  • 本地脚本:scripts/stock.py

腾讯股票行情返回示例

v_sh600519="1~贵州茅台~600519~1945.50~1942.00~1941.00~1946.80~1940.02~1945.71~4291131~8365444900~183~1945.60~826~1945.59~649~1945.58~699~1945.57~589~1945.56~1449~1945.71~1014~1945.72~722~1945.73~369~1945.74~471~1945.75~202~1945.76~2026-05-19~15:00:00~00~-1.18~-0.06~1945.50~1906.02~1945.50~1895216~4901415~1.22~836544.4900~18.55~403727.15~0.37~107.86~15.03~232.10~10.49~10.61~PB~0.23~0.53~-0.22~10.99~1945.50~1900.16~~ 1044479.27~1.22~1895216~4901415~0.06~10.47~10.49~10.61~0.01~-82.56~1945.50~1906.02~0.03~-0.06~1945.50~-0.39~1942.00~1036.50~1.88~181580~185384~1945.50~1900.16~0.00~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~"

字段说明

索引 含义
1 股票名称
2 股票代码
3 当前价格
4 昨收价
5 今开价
6 成交量(手)
7 成交额(万)
8 最高价
9 最低价
10 涨跌额
11 涨跌幅(%)

环境变量

  • ROBOT_WECHAT_CLIENT_PORT:本地微信机器人服务端口。
  • ROBOT_FROM_WX_ID:当前消息来源用户的 wxid。

执行步骤

  1. 当用户发送 股票 <代码>gp <代码> 时触发该技能。
  2. 在仓库根目录下执行本地脚本:python3 scripts/stock.py <股票代码>
  3. 脚本内部自动处理股票代码格式(补全市场前缀 sh/sz
  4. 脚本发送 GET 请求到 https://qt.gtimg.cn/q={stock_code}
  5. 脚本解析返回的行情数据,提取关键字段。
  6. 脚本从环境变量中读取 ROBOT_WECHAT_CLIENT_PORTROBOT_FROM_WX_ID
  7. 脚本发送 POST 请求到 http://127.0.0.1:{ROBOT_WECHAT_CLIENT_PORT}/api/v1/robot/message/send/text,请求体为:
    {
      "to_wxid": "{ROBOT_FROM_WX_ID}",
      "content": "【{股票名称}({股票代码})】
    当前价:{当前价格}
    涨跌幅:{涨跌幅}%
    涨跌额:{涨跌额}
    最高:{最高价}
    最低:{最低价}
    今开:{今开价}
    昨收:{昨收价}
    成交量:{成交量}
    成交额:{成交额}"
    }
    
  8. 如果任一步骤失败,回复兜底文案:股票查询失败,请稍后再试。

回复要求

  • 成功时,直接发送格式化股票信息,不要额外追加解释文字。
  • 失败时,使用固定兜底文案回复。