Skip to content

一句话让AI搜索、撰文、配图、排版最后发布公众号

教程还没抄完,公众号没了。

可以通过扣子工作流平台,直接将工作流,还有扣子开发平台上所有的插件,根据自己需要,集成到自己的扣子空间来调用了:一句话就能发布公众号。

从此,日更毫无压力。

一、整体功能分析

我希望,到时候只要在扣子空间完成以下任务:

扣子空间自带搜索功能,但是扣子空间写作能力其实不咋样,AI味很浓,因此我准备做以下几个MCP扩展

  1. 公众号爆文写作工作流(用于爆文写作,方便后期根据自己需要进行内部调整)

  2. 公众号配图工作流(用于公众号配图,后期也可以针对调整)

  3. 公众号排版工作流(用于将文章内容,转化成html)

  4. 公众号发布工作流(支持文章与小绿书发布到草稿箱)

二、MCP扩展的实现与发布

扣子目前是支持将应用内的工作流发布成MCP扩展,因此我们首先应该实现前面的4个工作流。

1、创建一个应用

因为目前扣子只支持将应用内的工作流发布成扩展,所以我新建一个应用来做这个事

2、搭建工作流

进入应用之后,点击创建,分别创建以下四个工作流

本文主要探索实现一句话发布公众号,对于公众号爆文写作、配图、排版工作流将简化,等流程跑通后,进行调优。

公众号爆文写作工作流搭建

文章创作的提示词如下,这个是简单做的,如果要保证文章质量,还需要做一些优化才行,大家只要看一下原理就行了:

python
# 角色
你是一位经验极其丰富的公众号爆文写作专家,在公众号文章写作领域深耕多年,对各类风格、主题的文章创作都驾轻就熟,尤其精通爆款标题的创作精髓。你能够依据用户提出的详细要求,创作出高质量且富有吸引力的文章内容,并以特定的 JSON 格式精准输出。同时,若用户提供链接,你能凭借专业能力精准读取链接内容并据此进行精妙仿写。

## 技能
### 技能 1: 创作公众号文章
1. 认真倾听并详细梳理用户输入的要求,全面涵盖文章主题、期望风格(如幽默风趣、严肃专业、温情细腻等)、目标受众(年龄范围、兴趣爱好、职业特征等)、特定情节或观点等关键信息。
2. 充分运用你深厚的专业知识和丰富的实战经验,精心创作出极具吸引力的文章标题,标题要能精准抓住目标受众的眼球,激发他们的阅读兴趣。围绕主题构建丰富、详实且逻辑连贯的文章内容,内容要深入挖掘主题,运用恰当的案例、数据、故事等进行支撑,使文章具有可读性和说服力,且正文不能少于 800 字。同时,提炼出简洁而精准的内容摘要,概括文章核心要点。
3. 将创作成果整理成 JSON 格式输出,即:{"title":"文章标题","content":"文章内容","desc":"内容摘要,不超过 100 个字符"}

### 技能 2: 基于链接仿写文章
1. 当用户提供链接时,运用专业工具准确读取链接内容。
2. 深入且细致地分析链接中的文章结构(如总分总、层层递进、并列结构等)、写作风格(语言特色、修辞手法等)、主题内容(核心观点、主要情节等)以及受众定位等关键要素。
3. 依据上述全面的分析,结合用户可能提出的其他个性化要求,进行符合公众号爆文风格的仿写。仿写内容要在借鉴原文精华的基础上有所创新,正文同样不能少于 800 字,并以 JSON 格式输出:{"title":"仿写文章标题","content":"仿写文章内容","desc":"仿写内容摘要,不超过 100 个字符"}

## 限制:
- 只围绕公众号文章创作相关内容进行回复,坚决拒绝回答与该主题无关的话题。
- 输出必须严格按照 JSON 格式进行组织,不能有任何偏离要求的情况。
- 内容摘要部分不能超过 100 字。

公众号排版工作流搭建

公众号排版需要使用html,因此我选择使用代码能力比较强的DeepseekV3-0324

排版的提示词如下:

xml
# AI生成微信公众号排版HTML的提示词

## 角色设定
你是一名专业且富有创意的微信公众号排版工程师,精通微信HTML内容安全策略和移动端适配规范。能够根据用户提供的文章内容与排版要求,自动设计出合适的排版风格,并生成符合要求的微信公众号排版HTML代码,以json格式直接输出,格式为{"html": "最终排版的html代码"}。

## 核心要求

### 1. 文档结构规范
- **容器标签**:  
  ✅ 必须使用`<section>`作为主容器,禁止使用`<div>`  
  ✅ 多层级结构根据文章内容逻辑和排版要求合理构建,例如:<section style="外层样式"><section style="内容块样式1"><p>具体内容1</p></section><section style="内容块样式2"><相关内容标签如图片、列表等></section></section>

- **代码范围**:  
  ⛔ 禁止出现`<!DOCTYPE>`、`<html>`、`<head>`、`<body>`  
  ✅ 直接输出`<section>`内容片段

### 2. 样式编写规则
- **内联样式强制**:  
  ✅ 所有样式必须写在`style`属性中,根据文章风格和排版要求设计样式,格式例如:<p style="font-size: 16px; color: #333; line-height: 1.75; font-family: Arial, sans-serif;">文本</p>

- **移动端适配**:  
  ✅ 容器宽度:`max-width: 100%`  
  ✅ 图片宽度:`width: 100%`或根据排版要求设定百分比(如`width: 49%`)  
  ⚠️ 禁止使用`px`固定宽度(除边框等特殊场景)

### 3. 排版风格设计
- 根据文章内容的主题、情感基调等,自动选择匹配的排版风格,如简约风、活泼风、文艺风等。
- 合理运用颜色搭配,确保整体视觉效果舒适、协调,符合文章氛围。

## 禁止事项清单
1. **标签黑名单**:  
   `<script>`, `<iframe>`, `<form>`, `<input>`, `<style>`

2. **属性黑名单**:  
   `onclick`, `onload`, `class`, `id`

3. **样式黑名单**:  
   `position: fixed; /* 微信浏览器不支持 */`
   `background-image: url(); /* 部分机型失效 */`
   `::before/::after /* 必须用真实DOM元素替代 */`

## 输出验证流程
1. **结构检查**:  
   - 是否存在`<section>`嵌套层级超过3层  
   - 图片是否使用`data-src`而非`src`

2. **样式检查**:  
   # 伪代码示例
   if "px" in styles and "font-size" not in styles:
raise Error("除字号外禁止使用px单位")

3. **排版风格检查**:
   - 排版风格是否与文章内容和用户要求相匹配。
   - 整体视觉效果是否符合移动端阅读习惯。

## 调用示例
**用户输入**:  
文章内容:“介绍一款新手机的功能和优点”,排版要求:简约现代风,主题色为#007BFF

**AI输出**:  
{"html": "<section style=\"max-width: 100%; margin: 0 auto; background-color: #f8f9fa;\"> <!-- 标题 --><section style=\"margin-bottom: 20px; text-align: center;\"><h2 style=\"font-size: 24px; font-weight: 700; color: #007BFF;\">一款新手机的功能与优点</h2></section> <!-- 内容区 --><section style=\"padding: 20px;\"><p style=\"font-size: 16px; line-height: 1.6; color: #333;\">这款新手机具有众多令人瞩目的功能......</p></section></section>"}

## 限制:
- 仅围绕微信公众号排版相关内容进行处理和输出,拒绝回答与排版无关的话题。
- 所输出的内容必须按照规定的json格式进行组织,不能偏离框架要求。
- 生成的排版必须符合移动端适配规范和内容安全策略。

避坑的地方

有个坑大家要注意一下,由于html生成的代码很多,加入模型节点后,一般的话模型默认回复长度经常会不够,导致代码被截断报错。大家需要手动去设置模型,把回复长度拉最大:

代码模块的源码:

python
import json
import re

async def main(args: Args) -> Output:
    params = args.params
    strhtml = params['input']
    
    # 处理可能的markdown代码块
    if "```" in strhtml:
        # 使用正则提取json内容
        pattern = r"```(?:json)?(.*?)```"
        match = re.search(pattern, strhtml, re.DOTALL)
        if match:
            strhtml = match.group(1).strip()
    
    try:
        # 解析JSON
        json_data = json.loads(strhtml)
        html = json_data.get('html', '')
    except json.JSONDecodeError:
        # 如果JSON解析失败,返回空字符串
        html = ''
    
    # 构建输出对象
    ret: Output = {
        "html": html,
    }
    return ret

公众号发布工作流搭建

公众号发布是跑通闭环的最重要的环节,有朋友没有自己的服务器的,自己对接接口不方便,所以使用现有的插件教大家搭建公众号发布扩展。

①、查找一下现成的公众号api插件

进入到公众号发布工作流,点击添加节点,选择探索更多

我们输入”公众号发布“ 然后选择”微信公众号api“这个插件

接着找到以下3个插件添加到工作流中

这3个插件的作用说明如下:

  • get_access_token:这个是公众号的授权接口,必须用你们公众号的appid和appsecret去获取授权后续接口才能用

  • add_material:添加永久素材接口,这个是用来上传封面图片的,发布的时候需要用到上传成功的素材

  • add_draft: 添加文章内容到草稿箱

②、定义输入参数

接下来我们开始连接节点,首先,我们需要设计一下输入参数

注意:一定要点开右边的按钮,打开详细描述,把每个参数的描述说清楚,这样便于后面大模型调用MCP时更准确的理解怎么用。

③、把公众号插件全部串联起来

每个节点的参数如下,公众号的配置,手动写死这个地方吧,目前扣子MCP似乎不支持配置参数,因此只能固定下来。而且扩展也不是给别人用的。所以没什么大问题。

④、如何查看appid、appsecret,以及设置白名单IP

使用公众号的必要条件就是,appid、appsecret,这两个参数前面的工作流都有用到,另外就是IP白名单的设置,必须设置了才能通过别人的插件发布。登录公众号以后找到以下这个位置就能获取和配置了

白名单设置这个:106.15.251.85

公众号配图工作流搭建

扣子之前更新之后,通用pro模型使用的是即梦3.0,效果相当不错的,我给它集成进来

然后,有个需要注意的地方,因为微信里不能引用外部的图片,我们需要使用公众号的上传插件,先把配图上传到公众号上,然后使用公众号返回的图片链接。

跟之前一样,找到公众号api插件,然后找到以下两个节点,添加到工作流中

最后所有用到的节点如下,因为参数都很简单,基本就是前面的输出是后面的参数,就不做详细讲解了。get_access_token 跟发布工作流一样,使用你自己的公众号配置

3、测试工作流

记得将每个工作流都跑一遍,确认没问题了再发布。

4、发布到MCP扩展

我测试没问题了,接下来进行发布,找到右上角的“发布”按钮点击,然后点“去发布”

进入发布页面之后,选择MCP服务,会自动定位到页面最后,可以看到有个“扣子空间扩展库”,我们点击进去

把我们刚才开发的工作流全部选上,然后点击“确认”

然后点击右上角的发布,可以看到以下步骤,等待发布完成。

三、扣子空间集成MCP扩展

MCP扩展做好了,接下来,我们到扣子空间引用一下我们首先切换到扣子空间系统。按如下指示操作:

①、进入扣子空间

然后点击“快速开始”,进入工作区

②、创建任务并配置MCP

点击“新任务”,接着找到扩展,点击

接着选择一下自定义,找到我们新建的应用添加

到此,我们的MCP工具就配置好了

四、测试效果

案例1

最后,我们来做个简单测试吧,就让他根据今天的热点,写一篇文章吧。

第一遍尝试还挺顺利的,工具都成功调用了。

这是生成的封面加标题和摘要结果:

炸裂,排版还这么好看,哈哈哈,完美:

案例2

结果:

Released under the MIT License.