一看就会!微信公众号接口接入详细教程!

小弟需要将微信公众号接入大模型自动回复,使用https://github.com/zhayujie/chatgpt-on-wechat,记录一下实现过程和踩的坑。

一、服务器搭建

(一) 修改端口

在阿里云注册了一台服务器,由于需要能够让外网访问,故安装了nginx,默认访问80端口,但是vx公众号不能修改端口,故

# 查看80端口是否被占用
netstat -tulnp | grep :80
输出发现被nginx:master占用,故nginx默认的监听端口为80

所以需要把80端口释放出来,将nginx的监听端口改为8080:

在 Nginx 配置文件(/etc/nginx/nginx.conf)中,将 listen 指令从 80 改为 8080

server {
    listen 8080;
    listen [::]:8080;
    server_name  _;
    ...
}

(二) 服务器端口开放

最后注意在阿里云服务器页面->网络与安全->添加入方向规则,将8080端口和80端口添加

此时,服务器相关的工作就准备好了

二、微信公众号接口配置

公众号这里需要去进行一些配置,在设置与开发->开发接口管理这里

(一) 保存开发者ID(AppID)、开发者密码(AppSecret)

(二) 账号开发信息->IP白名单中,将服务器IP加入白名单,否则无法获取Access token

(三) 接口权限->获取Access token

# 在服务器中输入下面指令发送GET请求,注意要加引号
curl "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET"
# 然后返回json字段,获取access_token
{"access_token":"ACCESS_TOKEN","expires_in":7200}

(四) 进行服务器配置

1. 在服务器上编写main.py文件

# -*- coding: utf-8 -*-
# filename: main.py
import web

urls = (
    '/wx', 'Handle',
)

class Handle(object):
    def GET(self):
        return "hello, this is handle view"

if __name__ == '__main__':
    app = web.application(urls, globals())
    app.run()

python main.py 80运行,查看网页http://服务器IP/wx是否有返回值

2. 修改main.py如下

(注意,微信官方给的实例是python2的代码,是跑不通的,我修改了一下,亲测在python3环境下可以跑通)

# -*- coding: utf-8 -*-
# filename: main.py
import web
import hashlib

urls = (
    '/wx', 'Handle',
)

class Handle(object):
    def GET(self):
        try:
            data = web.input()
            if len(data) == 0:
                return "hello, this is handle view"
            signature = data.signature
            timestamp = data.timestamp
            nonce = data.nonce
            echostr = data.echostr
            token = "xxxxx" #请按照公众平台官网\基本配置中信息填写

            list = [token, timestamp, nonce]
            list.sort()
            sha1 = hashlib.sha1()
            for item in list:
                sha1.update(item.encode('utf-8'))
            # map(sha1.update, list)
            hashcode = sha1.hexdigest()
            print("handle/GET func: hashcode, signature: ", hashcode, signature)
            if hashcode == signature:
                return echostr
            else:
                return ""
        except Exception as Argument:
            return Argument

if __name__ == '__main__':
    app = web.application(urls, globals())
    app.run()

3. 在url验证窗口进行token验证

  • AccessToken:即前面json返回字段的access_token
  • URL:http://服务器ip/wx
  • Token:自己指定,随意叫一个名字,和代码中token = "xxxxx"保持一致即可

然后python main.py 80运行修改后的main.py,点击验证即可

4. 填写服务器配置

验证成功后,在开发接口管理->基本配置中,填写服务器配置

  • URL:http://服务器ip/wx
  • Token:自己指定,随意叫一个名字,和代码中token = "xxxxx"保持一致即可
  • EncodingAESKey:随机生成即可
  • 消息加解密方式:选明文模式即可

三、后续使用

只需要配置以下参数,即可连接公众号进行开发:

"wechatmp_token": "xxx",
"wechatmp_port": xxx,
"wechatmp_app_id": "xxx",
"wechatmp_app_secret": "xxx",
"wechatmp_aes_key": "xxx",
### 微信公众号 DeepSeek 集成保姆级教程 #### 准备工作 为了将DeepSeek集成到微信公众号,需先完成准备工作。这包括获取必要的API密钥以及设置开发环境。确保已注册并登录至Hugging Face平台,并下载所需的模型文件[^1]。 #### 创建微信公众平台应用 前往微信公众平台官网创建个新的小程序或订阅号服务端口。记录下AppID和AppSecret以便后续配置使用。 #### 获取访问令牌 通过POST请求向`https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET`发送HTTP GET请求来获得access_token。此token用于验证身份,在调用微信接口时必需提供它作为参数之。 #### 设置服务器URL 进入公众账号后台管理页面中的“开发者中心”,填写服务器IP白名单及消息加密模式下的Token、EncodingAESKey等信息。同时指定回调URL为接收来自用户的事件推送地址。 #### 实现自然语言处理功能 利用Python Flask框架搭建简易Web Server监听特定路径上的GET/POST请求: ```python from flask import Flask, request, jsonify import requests app = Flask(__name__) @app.route('/wechat', methods=['GET','POST']) def wechat(): if request.method == 'GET': echostr = request.args.get('echostr') return echostr elif request.method == 'POST': xml_data = request.data # 解析XML数据包... response_msg = process_message(xml_data) return response_msg if __name__ == "__main__": app.run(port=80) ``` 当接收到用户的消息后,可以将其转发给部署好的DeepSeek API进行语义理解分析: ```python def process_message(msg_xml): msg_content = extract_text_from_xml(msg_xml) deepseek_url = "https://huggingface.co/deepseek-ai/DeepSeek-V3" payload = {"text":msg_content} headers={"Content-Type":"application/json"} r = requests.post(deepseek_url,json=payload,headers=headers).json() reply = format_reply(r['response']) return generate_xml_response(reply) # 辅助函数定义省略... ``` 以上即完成了基本的功能实现流程描述。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小火汁猛猛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值