微信转码搭建机器人教程

作者:championsky | 发布时间:

本教程面向初学者,详细介绍从开通微信公众号、申请API接口凭证,搭建后端服务器,配置公众号至部署上线的全过程。

1.注册微信公众号

首先,我们需要在微信公众平台上注册一个微信公众号。打开 https://mp.weixin.qq.com/ 官网,使用微信登录,注册公众号:

  1. 选择你的账号类型(订阅号或服务号)和账号名,然后点击“提交”。

  2. 按照要求填写相关资料,包括类型、所属行业等。

  3. 提交,等待审核。

审核通过后,你就可以进入微信公众平台的开发模式了。

2.申请API接口凭证

在微信公众平台"开发者中心",按照要求提交开发者资料,并获取到AppID和AppSecret。

  1. 登录到微信公众平台后台,选择"开发"-"基本配置"。

  2. 在“接口配置信息”中填写URL和Token,URL为你自己定义的服务地址,Token为你自己定义的令牌。

  3. 在"开发者中心"填写开发者资料,获得AppID和AppSecret。

3.搭建转码机器人服务

接下来,我们尝试使用Python的Flask库来搭建一个简单的转码服务。

1.安装Flask库

pip install Flask

2.编写Flask应用程序

在你的代码工程目录下,新建一个 app.py 文件,用于编写 Flask 应用程序:

from flask import Flask, request, render_template
import requests
import json

app = Flask(__name__)

@app.route('/wechat', methods=['POST'])
def wechat():
    """响应微信公众号的POST请求"""

    xml = request.stream.read().decode("utf-8") # 获取微信请求的数据
    message = parse_wechat_request(xml) # 解析微信请求数据
    reply = transcode(message.content) # 调用转码函数
    response_text = make_wechat_response(message, reply) # 构造微信响应
    return response_text

def parse_wechat_request(xml):
    """解析微信请求数据"""

    data = {}
    root = ET.fromstring(xml)
    for child in root:
        data[child.tag] = child.text
    message = WeChatRequest(data)
    return message

def make_wechat_response(message, reply):
    """构造微信响应"""

    response_dict = {'ToUserName': message.from_user_name,
                     'FromUserName': message.to_user_name,
                     'CreateTime': int(time.time()),
                     'MsgType': 'text',
                     'Content': reply}
     response_dict_xml = dict_to_xml(response_dict) # 将字典转化为XML格式
     return response_dict_xml

def transcode(content):
    """调用转码API,返回转码结果"""

    api_url = "http://your_transcode_api_url"
    # 发送POST请求,将content作为参数传递给转码API
    response = requests.post(api_url, data=json.dumps({'content': content}),
                                  headers={'Content-Type': 'application/json'})
    # 获取API返回结果,这里假设API返回的结果为JSON格式
    response_dict = json.loads(response.content.decode('utf-8'))
    # 提取转码结果并返回
    return response_dict['result']

if __name__ == '__main__':
    app.run(port=80, debug=True)
  • 上述代码使用了Flask应用程序,同时也使用了request,json与xml等Python库,其中 transcode 函数用于调用我们的转码API,将需要进行转码的文本发送给API,获取API返回的转码结果。

    转码API可以自行开发或者使用第三方云服务API,这里不再赘述。

  • 运行Flask应用程序

    在你的代码工程目录下开启终端输入如下指令:

  • python app.py
    1. 运行成功后,如果不想关掉终端就暴露在公网上了,建议使用 PM2 等进程管理工具来启动、守护进程等。

    4.配置微信公众号

    现在,你需要在微信公众平台中配置你的公众号,将其与你的转码服务连接起来。

    1. 配置"接口配置信息"

      1. 在微信公众平台中,选择"开发"-"基本配置"

      2. 在"接口配置信息"中填写URL和Token,URL为你自己定义的Flask的对外接口,Token为你自己定义的令牌。

      3. 将配置的地址验证通过,然后保存配置。

    2. 配置"消息与菜单"

      在"开发"-"自定义菜单"中,配置你的菜单和回复内容,将菜单配置为点击发送文本消息和点击发送图片链接两个按钮,然后在"响应动作"选项中选择"API",将API地址设置为你的Flask接口地址。

    3. 配置微信公众号安全域名

    通过网站ICP备案、域名授权、SSL证书申请等程序,将你的互联网网站绑定至一个可信赖的域名下,在微信公众平台中将该域名配置为安全域名即可保证微信公众号使用过程中的安全。

    5.部署上线

    如果你想让你的转码机器人上线战斗,你需要进行更多的工作,如:购买自己的服务器并搭建自己的Web服务器、完成ICP备案与SSL证书申请等事宜。

    当然最基础的服务器也可以使用免费的Amazon Web Services (AWS)、Google Cloud Platform和腾讯云等云平台,既方便又省事,并且可以根据服务的使用需求进行动态的调整,为你的机器人节省成本并提高服务质量。

    以上便是从零开始搭建微信转码机器人的详细教程,让初学者更加轻松地上手微信公众平台开发。