W

微信公众号运营助手

内容创作v2.0.8
作者:user_1002ca6a更新于 2026-10-01wechat-viral-operator@user_1002ca6a/wechat-viral-operator
自媒体运营

据 AlphaMoat 统计,截至 2026-09,微信公众号运营助手 累计下载 2,921 次、获 3 个星标,在全部 5,078 个 AI 技能中排名第 3,788 位,在「内容创作」分类(362 个)中排名第 251 位。

累计安装
206
累计下载
2,921
星标
3
全站排名
#3,788
全站前 75% · 「内容创作」前 70%
平台累计安装累计下载星标评论
SkillHub ↗2062,9213—

各平台的计数口径不同,统计时间不一致。

这个技能是做什么的

围绕创作方向生成选题和文稿,并生成封面图、表格布局和内联样式的 HTML,检查标题、摘要及字符编码。预览确认后才能经授权同步草稿;不选择同步则保留本地文章与封面。自动或定时发布另需发布授权,不保证爆款、去除所有 AI 痕迹或实际发布成功。

资料发布于 2026-10-26

可以用来做什么

  • 制作公众号文章与本地排版预览

什么时候用

  • 需要从选题走到可审阅的公众号草稿时

示例提示词

以下是根据技能文档生成的示例,不代表实际运行结果。

为这个主题拟稿、制作封面和 HTML,先供我预览

使用条件

依据技能文档中的声明整理,未经实际安装或运行验证。

鉴权说明
同步分支需公众号 AppID、AppSecret;发布需另行授权。
配置要求
  • 封面生成使用 image_gen;同步前须核对预览、封面和字符编码。

月度数据趋势

累计下载2,921
351,5853,1352026-03 · 累计下载 2492026-05 · 累计下载 8772026-06 · 累计下载 1,1582026-07 · 累计下载 1,7492026-08 · 累计下载 2,1022026-09 · 累计下载 2,92126-0326-09
星标3
0232026-03 · 星标 -2026-05 · 星标 -2026-06 · 星标 22026-07 · 星标 32026-08 · 星标 32026-09 · 星标 326-0326-09

2026-09 起统计方法调整:同名技能按作者分别统计,并覆盖全部技能。图中虚线为调整前的月份,与之后的数据不直接比较,也不计算跨越调整的增长。

月份累计下载环比星标
2026-092,921—3
2026-082,102+20.2%3
2026-071,749+51.0%3
2026-061,158+32.0%2
2026-05877—-
2026-03249—-

SKILL.md 原文

以下是作者发布的原始文件,按纯文本显示,本站未做修改或审核;其中的链接不可点击,命令请核实后再运行。抓取于 2026-10-23。

19 KB · SkillHub v2.0.8
# SKILL.md - 微信公众号运营助手

## 元数据

```yaml
name: 微信公众号运营助手
description: >
  一站式完成爆款选题挖掘→拟人化去AI化文稿撰写→精美彩色排版→HTML自动生成+在线预览→授权同步公众号草稿→定时自动发布全流程自动化Skill。适用于公众号运营者、自媒体创作者、企业品牌文案、个人内容创业者实现无人值守公众号日常运营。当用户需要运营微信公众号、撰写公众号文章、生成公众号HTML、同步公众号草稿、配置定时发布时触发此技能。关键词:公众号运营、微信公众号文章、爆款选题、拟人化写作、公众号HTML生成、公众号草稿同步、自动发布。
```

展开全部(共 460 行)
## 技能概述

本Skill为微信公众号运营提供全流程自动化解决方案,涵盖从选题策划、内容创作、排版生成到发布管理的完整链路。

**核心修复点(2026-04-15)**:
1. 封面图自动生成与同步机制
2. 乱码修复与字符白名单校验
3. 微信原生兼容排版(表格布局)
4. 标题/摘要字数自动校验与截取
5. 同步前预览确认机制

**核心修复点(2026-04-21)**:
1. `generate_html.py` 全面重构:100%内联样式,0个 `<style>` 标签、0个CSS类,彻底解决"同步后排版消失"问题
2. `sync_to_wechat.py` body提取逻辑修复:从 `<body>...</body>` 提取,不再用 `html.find("<table")` 截取导致结构错乱
3. 乱码根因修复:`requests.post(url, json=data)` → 手动 `json.dumps(ensure_ascii=False).encode("utf-8")` 发送
4. 章节块解析修复:CHAPTER ONE 章节标题与内容顺序不再错乱
5. 增加零宽字符清洗,防止隐藏字符污染JSON

---

## 核心功能模块

### 1. 智能爆款选题挖掘

- 接收用户指定的创作领域、题材方向(文字或语音描述)
- 分析目标赛道的爆款文章特征:标题逻辑、开篇钩子、行文节奏、内容切入点、用户共鸣点
- 生成同赛道高潜力原创选题清单
- 提供选题建议供用户确认或自主选择

### 2. 拟人化文稿撰写(核心优化:细节强化)

#### 基础写作要求
- 对标爆款文章的行文风格、叙事结构
- 强化内容话题性与吸引力,快速抓住读者注意力
- 全程采用拟人化口语化创作,彻底去除AI写作痕迹
- 杜绝机械句式、模板化表达,贴合真人原创写作观感
- 文章篇幅控制在1000-2000字,段落精简,适配移动端阅读

#### 字数约束(强制)
- **标题**:≤ 64 个字符(中文、英文、数字统一计数)
- **摘要**:≤ 120 个字符
- 自动截取、精简并优化语句,确保不超限且语义完整通顺

#### 细节优化要求(第三修复点)
撰写实操类、工具类文章时:
- 必须加入对应系统/工具的操作界面、交互流程、功能页面细节描述
- 详细说明用户与系统的交互步骤、操作路径、界面操作逻辑
- 清晰拆解每一步操作方式
- 具象化呈现功能运行界面、操作按钮、交互反馈、页面布局
- 通过界面细节、操作流程、交互步骤的具象化描写,提升文章细节感、真实感与说服力

### 3. 封面图自动生成(新增)

**强制要求**:每次生成文章时,必须同步生成一张适配微信公众号的封面图。

#### 封面图规格
- **尺寸**:900 × 500 像素(比例 9:5,微信公众号推荐尺寸)
- **格式**:PNG 或 JPG
- **文件大小**:≤ 2MB

#### 封面图风格规范
- **简洁专业**:避免过于复杂的设计元素
- **主题相关**:与文章内容高度相关
- **财务主题**:如用户为财务领域,使用专业、稳重的设计风格
- **文字处理**:标题文字清晰可读,避免过小字体
- **配色建议**:
  - 主色调:深蓝 `#1a1a2e`、深灰 `#2c3e50`
  - 强调色:金色 `#c9a227`、橙色 `#f5a623`
  - 背景色:浅色渐变或纯色

#### 封面图生成流程
1. 根据文章主题和标题,设计封面图概念
2. 使用 `image_gen` 工具生成封面图
3. 保存封面图到工作目录:`cover_image.png`
4. 同步时上传封面图到公众号素材库,获取 `thumb_media_id`

### 4. 精美彩色排版(微信原生兼容)

#### 微信排版限制(必须遵守)
微信公众号 API 和编辑器对 HTML/CSS 有严格限制:

| 限制项 | 说明 | 处理方案 |
|--------|------|----------|
| `<style>` 标签 | **不支持** | 所有样式必须内联(`style=""`) |
| `linear-gradient` | **不支持** | 使用纯色背景替代 |
| `rgba()` / `hsla()` | **不支持** | 使用十六进制颜色 `#RRGGBB` |
| `box-shadow` | **不支持** | 使用边框替代 |
| Flexbox / Grid | **不支持** | 使用表格布局 `<table>` |
| 伪元素 `::before/after` | **不支持** | 使用实际元素替代 |
| `<br>` 换行 | **慎用** | 标题避免使用,使用单行显示 |

#### 微信原生兼容排版规范

**行间距与段间距**:
- 行高:`line-height: 1.6~1.8`(推荐 1.75)
- 段落间距:`margin-bottom: 16~20px`
- 段前段后留白适中,避免拥挤

**标题样式**:
- 主标题:`font-size: 22~24px`,`font-weight: bold`,`color: #1a1a1a`
- 章节标题:`font-size: 18~20px`,左侧边框装饰
- 小标题:`font-size: 16px`,`color: #444`

**正文样式**:
- 字号:`font-size: 16px`
- 颜色:`color: #333`
- 对齐:`text-align: justify`(两端对齐)

**重点内容高亮**:
- 高亮框:浅色背景 + 左侧边框
- 引用框:米白色背景 + 边框
- 强调文字:加粗 + 主题色

**列表样式**:
- 无序列表:使用 `•` 或自定义符号
- 有序列表:数字编号清晰
- 列表项间距:`margin-bottom: 8~12px`

#### 表格布局模板(推荐)

使用 `<table>` 布局替代 `<div>` 布局,确保微信兼容性:

```html
<!-- 章节标题示例 -->
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="margin: 24px 0 16px 0;">
  <tr>
    <td style="border-bottom: 2px solid #c9a227; padding-bottom: 12px;">
      <div style="font-size: 12px; color: #c9a227; margin-bottom: 4px; text-transform: uppercase; letter-spacing: 2px;">CHAPTER ONE</div>
      <div style="font-size: 18px; font-weight: bold; color: #1a1a1a; margin-bottom: 4px;">章节主标题</div>
      <div style="font-size: 14px; color: #666;">章节副标题</div>
    </td>
  </tr>
</table>

<!-- 引言框示例 -->
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="margin: 20px 0; background-color: #faf8f5; border: 1px solid #e8e4df;">
  <tr>
    <td style="padding: 16px 20px;">
      <p style="margin: 0; font-style: italic; color: #555; line-height: 1.7;">引言内容...</p>
    </td>
  </tr>
</table>

<!-- 高亮框示例 -->
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="margin: 20px 0; background-color: #fff9e6; border-left: 4px solid #c9a227;">
  <tr>
    <td style="padding: 16px 20px;">
      <p style="margin: 0; color: #333; line-height: 1.7;">高亮内容...</p>
    </td>
  </tr>
</table>
```

### 5. HTML自动生成 + 在线预览

- 自动生成微信公众号专属适配HTML格式代码
- 使用 **表格布局** 确保微信兼容性
- 在Skill操作界面实现所见即所得的在线预览
- 预览页面完整还原排版效果、彩色样式、文字内容
- 使用 `scripts/generate_html.py` 脚本生成标准HTML
- 使用 `scripts/preview_server.py` 启动本地预览服务器

### 6. 公众号草稿同步

预览确认后主动询问用户是否同步至公众号草稿箱:
- 如需同步,提示用户提供 AppID、AppSecret
- 明确告知参数用途与获取路径
- 对参数进行校验,错误则友好提示重新填写
- **字符编码处理**:使用 `ensure_ascii=False` 防止中文乱码
- **封面图同步**:自动上传封面图并获取 `thumb_media_id`
- 校验通过后自动同步HTML文章至公众号草稿箱
- 如选择不同步,仅保留本地HTML格式文章和封面图
- AppID 与 AppSecret 仅用于接口鉴权,不进行本地存储与泄露

### 7. 自动发布与定时任务配置

- 如需自动发布,向用户问询对应发布授权
- 获取权限后实现文章一键自动发布
- 支持自定义配置定时任务:每日固定发布时间、每日触发频次、间隔执行时长
- 定时任务后台静默运行,实现7×24小时无人值守

---

## 工作流程

```
用户指定创作方向
    ↓
智能爆款选题分析(用户提供领域/方向描述)
    ↓
细节化拟人化文稿撰写(自动校验字数)
    ↓
生成封面图(900×500px,主题相关)
    ↓
精美彩色排版(表格布局,微信兼容)
    ↓
HTML自动生成(内联样式,无CSS3属性)
    ↓
Skill端在线预览 ←→ 用户确认
    ↓
询问是否同步公众号草稿
    ↓ [用户选择同步]
AppID/AppSecret鉴权
    ↓
上传封面图获取thumb_media_id
    ↓
字符编码校验(防止乱码)
    ↓
同步至公众号草稿箱
    ↓
配置定时任务(可选)
    ↓
自动发布
```

---

## 写作风格指导

### 去AI化写作要点
- 避免使用"首先...其次...最后..."等机械连接词
- 避免"值得注意的是"、"毋庸置疑"等套话
- 使用自然的段落过渡,而非明显的逻辑连接词
- 增加口语化表达、个人化视角
- 适当使用感叹句、疑问句增加互动感

### 细节描写示例(工具/实操类文章)
```
不是只写"点击发布按钮",而是:
"在文章编辑页面的右下角,找到那个蓝色的「群发」按钮,轻轻一点。系统会弹出确认框,显示文章即将推送的目标范围,再次点击「确认」后,等待3-5秒的加载动画,文章就成功发出去了。"
```

---

## HTML生成规范

### 强制约束

1. **样式内联**:所有 CSS 必须内联,禁止使用 `<style>` 标签
2. **表格布局**:使用 `<table>` 替代 `<div>` 实现复杂布局
3. **纯色颜色**:使用 `#RRGGBB` 格式,禁止使用 `rgba()`、`hsla()`、`linear-gradient`
4. **无阴影**:禁止使用 `box-shadow`,使用边框替代
5. **单行标题**:标题避免使用 `<br>` 换行
6. **字符编码**:使用 UTF-8,JSON 序列化时设置 `ensure_ascii=False`

### 标准排版结构

```html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>文章标题</title>
</head>
<body style="margin: 0; padding: 0; background-color: #f5f3f0;">
    <!-- 顶部装饰条 -->
    <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr><td height="8" style="background-color: #1a1a2e;"></td></tr>
    </table>
    
    <!-- 主容器 -->
    <table width="100%" cellpadding="0" cellspacing="0" border="0" style="background-color: #f5f3f0;">
        <tr>
            <td style="padding: 20px 16px;">
                <!-- 内容卡片 -->
                <table width="100%" cellpadding="0" cellspacing="0" border="0" style="background-color: #ffffff; max-width: 600px; margin: 0 auto;">
                    <tr>
                        <td style="padding: 24px 20px;">
                            <!-- 标题区域 -->
                            <table width="100%" cellpadding="0" cellspacing="0" border="0" style="margin-bottom: 20px;">
                                <tr>
                                    <td style="border-bottom: 2px solid #c9a227; padding-bottom: 16px;">
                                        <h1 style="margin: 0; font-size: 22px; font-weight: bold; color: #1a1a1a; line-height: 1.4;">文章标题</h1>
                                    </td>
                                </tr>
                            </table>
                            
                            <!-- 正文内容 -->
                            <p style="margin: 0 0 16px 0; font-size: 16px; line-height: 1.75; color: #333;">正文段落...</p>
                            
                            <!-- 章节标题 -->
                            <table width="100%" cellpadding="0" cellspacing="0" border="0" style="margin: 24px 0 16px 0;">
                                <tr>
                                    <td style="border-bottom: 1px solid #e8e4df; padding-bottom: 12px;">
                                        <div style="font-size: 11px; color: #c9a227; margin-bottom: 4px; text-transform: uppercase;">CHAPTER ONE</div>
                                        <div style="font-size: 18px; font-weight: bold; color: #1a1a1a;">章节标题</div>
                                        <div style="font-size: 14px; color: #666; margin-top: 4px;">副标题</div>
                                    </td>
                                </tr>
                            </table>
                            
                            <!-- 引言框 -->
                            <table width="100%" cellpadding="0" cellspacing="0" border="0" style="margin: 20px 0; background-color: #faf8f5; border: 1px solid #e8e4df;">
                                <tr>
                                    <td style="padding: 16px 20px;">
                                        <p style="margin: 0; font-style: italic; color: #555; line-height: 1.7;">引言内容...</p>
                                    </td>
                                </tr>
                            </table>
                            
                            <!-- 高亮框 -->
                            <table width="100%" cellpadding="0" cellspacing="0" border="0" style="margin: 20px 0; background-color: #fff9e6; border-left: 4px solid #c9a227;">
                                <tr>
                                    <td style="padding: 16px 20px;">
                                        <p style="margin: 0; color: #333; line-height: 1.7;">高亮内容...</p>
                                    </td>
                                </tr>
                            </table>
                            
                        </td>
                    </tr>
                </table>
            </td>
        </tr>
    </table>
    
    <!-- 底部装饰条 -->
    <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr><td height="8" style="background-color: #1a1a2e;"></td></tr>
    </table>
</body>
</html>
```

---

## 字符编码与乱码修复

### 乱码修复逻辑

1. **JSON 序列化**:使用 `json.dumps(data, ensure_ascii=False)`
2. **HTTP 请求**:发送原始 UTF-8 字节 `data.encode('utf-8')`
3. **Content-Type**:设置 `application/json; charset=utf-8`
4. **HTML Meta**:确保 `<meta charset="UTF-8">`

### 字符白名单校验

同步前自动校验并清洗文本:
- 移除控制字符(`\x00-\x1F`,保留 `\n\r\t`)
- 校验 emoji 兼容性(部分 emoji 在微信显示异常)
- 确保所有中文字符为 UTF-8 编码

---

## 微信公众号API对接

### 关键接口

- **获取 Access Token**:`/cgi-bin/token`
- **新增草稿**:`/cgi-bin/draft/add`
- **上传素材**:`/cgi-bin/media/upload`
- **发布**:`/cgi-bin/message/mass/sendall`
- **定时发布**:`/cgi-bin/message/schedule/send`

### 封面图上传流程

```python
# 1. 获取 access_token
access_token = get_access_token(appid, appsecret)

# 2. 上传封面图
url = f"https://api.weixin.qq.com/cgi-bin/media/upload?access_token={access_token}&type=image"
with open("cover_image.png", "rb") as f:
    files = {"media": f}
    response = requests.post(url, files=files)
    result = response.json()
    thumb_media_id = result["media_id"]

# 3. 同步草稿时携带 thumb_media_id
articles = [{
    "title": title,
    "content": html_content,
    "thumb_media_id": thumb_media_id,  # 封面图
    "digest": digest,
    "need_open_comment": 1
}]
```

### 字数限制

| 字段 | 限制 | 处理方案 |
|------|------|----------|
| title | ≤ 64 字符 | 超长自动截取,保留核心语义 |
| digest | ≤ 120 字符 | 超长自动截取,生成精简摘要 |
| content | ≤ 500万字符 | 一般文章不会超限 |

---

## 输出交付物

1. **选题清单**:Markdown 格式的备选选题列表
2. **文章正文**:Markdown 格式的拟人化文章
3. **封面图**:`cover_image.png`(900×500px)
4. **HTML文件**:可直接导入微信公众号后台的 HTML 代码(表格布局)
5. **预览链接**:本地预览服务器的访问地址

---

## 全局约束与规范

- 所有内容均为原创创作,不抄袭、不搬运
- 文稿写作始终坚守去AI化原则
- 接口调用、授权对接全程合规
- 严格保护用户公众号账号信息安全
- **HTML 格式必须使用表格布局,确保微信兼容性**
- **每次生成文章必须同步生成封面图**
- **标题/摘要必须自动校验字数,超限自动截取**
- **同步前必须进行字符编码校验,防止乱码**

---

## 相关资源文件

- `scripts/generate_html.py` - HTML生成脚本(表格布局版)
- `scripts/preview_server.py` - 本地预览服务器
- `scripts/sync_to_wechat.py` - 公众号同步脚本(含封面图上传)
- `references/wechat_api.md` - 微信公众号API文档
- `references/html_template.md` - HTML排版模板参考(微信兼容版)
- `references/prompt_templates.md` - 拟人化写作提示词模板

---

## 踩坑经验(2026-04-21 更新)

### 乱码:中文变成 \uXXXX 显示
**根因**:`requests.post(url, json=data)` 内部用 `json.dumps(ensure_ascii=True)`,中文被转成 `\uXXXX` 字符串存入微信,微信原样显示为乱码。
**修复**:
```python
# ❌ 会乱码
requests.post(url, json=data)

# ✅ 正确做法
payload = json.dumps(data, ensure_ascii=False).encode("utf-8")
requests.post(url, data=payload,
    headers={"Content-Type": "application/json; charset=utf-8"})
```

### 排版消失:同步后格式全无
**根因**:原 `generate_html.py` 使用 `<style>` 标签和CSS类名,`sync_to_wechat.py` 的 `clean_html_for_wechat()` 把 `<style>` 标签全部删掉,结果正文变成纯裸文本。
**修复**:HTML生成脚本全面改为内联样式(`style="..."`),不用 `<style>` 标签,不用CSS类,微信100%兼容。

### 内容截断/错位:章节标题顺序乱掉
**根因**:原脚本用 `html.find("<table")` + `html.rfind("</table>")` 截取正文,把外层大 table 容器也截进去,微信过滤掉 `width/max-width` 后布局全乱。另外用正则匹配 `margin:20px` 的高亮框和小标题 table 发生冲突,导致"维度一"出现在错误位置。
**修复**:改用 `<body>...</body>` 提取正文,不依赖table边界;章节标题解析用独立逻辑,不再靠正则匹配table样式。

### 零宽字符污染JSON
**根因**:Markdown或复制粘贴内容中可能含零宽字符(`\u200b`等),导致JSON序列化后被截断或异常。
**修复**:`clean_text()` 增加 `re.sub(r'[\u200b-\u200f\ufeff]', '', text)` 清洗。

「内容创作」分类下的热门技能

文章去AI味工具内容创作

去除文本中的AI写作痕迹,让文字读起来更像人类写作。当用户要求'去AI味'、'降AI味'、'让回复更像人话'、'润色'、'改写得更自然'时使用。检测并修复:AI高频词汇、过度结构化、虚假客观性、机械化连接词、完美主义陷阱、公式化结尾、过度修饰、情感缺失等问题。

↓ 37.7万★ 688user_ab5ae6ee
Humanizer内容创作

消除AI写作痕迹,使文本更自然真实。基于维基百科"AI写作特征"指南,识别并修正夸张象征、宣传用语、肤浅-ing分析、模糊归因、破折号滥用、三项排比、AI词汇、负面平行结构及冗长连接词等模式。

↓ 32.0万★ 1,107B*T
humanizer-zh内容创作

去除文本中的 AI 生成痕迹。适用于编辑或审阅文本,使其听起来更自然、更像人类书写。 基于维基百科的"AI 写作特征"综合指南。检测并修复以下模式:夸大的象征意义、 宣传性语言、以 -ing 结尾的肤浅分析、模糊的归因、破折号过度使用、三段式法则、 AI 词汇、否定式排比、过多的连接性短语。

↓ 10.5万★ 103liuxy951129-cpu
公众号热门文章查询内容创作

公众号搜索工具,支持按关键词搜索爆款文章,展示推荐热门文章,助力内容创作者把握趋势与获取灵感;当用户需要搜索公众号文章、查找爆款内容、获取创作灵感时使用

↓ 7.2万★ 118user_5f9c21aa
抖音文案一键提取内容创作

粘贴抖音、快手、小红书、视频号公开可访问的短视频分享链接,一键提取标题、简介、口播文案,提供原版、优化朗读版、精简浓缩版,并支持违禁敏感词提醒与口播时长参考,排版整洁纯净,一键复制即用。

↓ 6.2万★ 183user_a41ae6c8
一键去AI味工具内容创作

去除文本中的AI写作痕迹,让文字读起来更像人类写作。当用户要求'去AI味'、'降AI味'、'让回复更像人话'、'润色'、'改写得更自然'时使用。检测并修复:AI高频词汇、过度结构化、虚假客观性、机械化连接词、完美主义陷阱、公式化结尾、过度修饰、情感缺失等问题。

↓ 4.8万★ 55user_ab5ae6ee
番茄小说写作助手(单章2200-2800字)内容创作

|专为番茄小说平台优化的分章节创作助手。支持各种题材(悬疑/言情/奇幻/科幻/历史等),支持长篇创作,每章2200-2800字,结尾设置悬念钩子。强化情绪拉扯、爆点分布、开篇黄金三行、评论区诱导,深度润色去除AI痕迹。 当用户要求:写番茄小说、创作网文、分章节写作、连续剧情、章节悬念、长篇小说时使用。

↓ 4.5万★ 347user_634bbcdc
Marketing Skills内容创作

把一组营销方法模块收进同一个技能,按请求路由到对应模块取清单与可交付稿。

↓ 3.9万★ 158Jordan Chops

数据月份:2026-09 · 下载/星标/安装数聚合自公开技能注册库(ClawHub、SkillHub),按月更新。口径说明见数据方法。