【超简单!】Python微信公众号开发(6)

您所在的位置:网站首页 微信公众号的自定义菜单申请方法有哪些 【超简单!】Python微信公众号开发(6)

【超简单!】Python微信公众号开发(6)

2024-07-03 12:33| 来源: 网络整理| 查看: 265

在上篇文章 【超详细!】Python微信公众号开发(5)- 无需编程,手把手带你轻松实现公众号自定义菜单和自动回复 中,提到了微信公众号服务器配置启用后,原来微信公众号界面下方自定义的菜单栏和自动回复功能就失效了。

那如何解决两者的冲突,让两者共存呢?其实挺简单的,就是有点绕。

1. 停用服务器配置

如果你已经开启了服务器配置,那微信公众号自定义菜单的页面应该是这样的(即使你之前设置过自定义菜单,在你开启了服务器配置之后,也会变成这样): 在这里插入图片描述 在这种情况下,你需要先停用服务器配置: 在这里插入图片描述 然后再回到自定义菜单页面,就可以开始你的自定义菜单配置了。

2. 配置自定义菜单

这部分请参考: 【超详细!】Python微信公众号开发(5)- 无需编程,手把手带你轻松实现公众号自定义菜单和自动回复 ,文章第1部分【自定义菜单】给出了配置自定义菜单的详细操作步骤。

3. 重启服务器配置

在这里插入图片描述

4. 再次开启自定义菜单

这是本文最灵魂的一步。 (1)公众号后台 —> +新的功能 —> 已开通 —> 自定义菜单,进入“自定义菜单”页面 在这里插入图片描述 (2)在“自定义菜单”页面,点击“开启” 在这里插入图片描述 至此,服务器配置和自定义菜单就能共存,不会冲突了。

5. 关键字自动回复

以上只是实现了自定义菜单和服务器配置的共存,但是上篇文章中我们设置的“关键字自动回复”功能仍无法使用(如下图中所述功能:用户输入特定关键字,公众号给固定回复)。 在这里插入图片描述 这个的解决方案只能通过在服务器上写代码来实现了。最简单的实现方案:

服务器端接收到用户输入信息后 判断是否为预设置的关键字,如果是预设置的关键字,则直接返回对应的预设置的回复信息。如果不是预设置的关键字,则调用OpenAI实现ChatGPT的对话功能

修改代码如下:

(1)定义一个函数来检查是否为预设关键字,并返回预设关键字对应的回复信息

def get_info_from_const_keywords(keyword): print("get_info_from_const_keywords: ", keyword) # ConstKeywordsAndInfo:预设置的关键字和回复信息 ConstKeywordsAndInfo = { "GPT最佳实践": "《OpenAI:GPT 最佳实践中文大白话版本_未来力场编译》\ 链接: https://pan.baidu.com/s/1S1_jVWTH8CMH4M_4AaPoig 提取码: xxxx", "gpt提示技巧": " 《如何向 ChatGPT 提问以获得高质量答案:提示技巧工程完全指南》 \ 链接: https://pan.baidu.com/s/1wLvEoP5UbiRDW1HalslSeg 提取码: xxxx" } try: return ConstKeywordsAndInfo[keyword] # 如果找到关键字,回复预设置的回复信息 except: return None # 没有找到关键字,返回None

(2)调用上述函数,并对返回结果进行相应处理

@app.route('/wechatai', methods=['GET', 'POST']) def wechatai(): if requesthod == 'GET': return verify_wechat(request) else: # 处理POST请求 print("user request data: ", request.data) printXML(request.data) # 解析用户信息 user_message_content, from_user_name, to_user_name, msg_type = getUserMessageContentFromXML(request.data) print("user message content: ", user_message_content) response_content = get_info_from_const_keywords(user_message_content) # None说明用户输入不是预设关键字,调用OpenAI API完成ChatGPT对话 if (response_content is None): # 调用OpenAI接口生成回复内容 response_content = openai_test.get_chat_completion(user_message_content) print("response content: ", response_content) # 生成回复信息并返回 return generate_response_xml(from_user_name, to_user_name, response_content)

大功告成。

6. 最终效果

在这里插入图片描述

注意:配置完自定义菜单后,生效是需要时间的,所以需要耐心等待一小会儿。

从今天开始,持续学习,开始搞事情。踩坑不易,欢迎关注我,围观我! 在这里插入图片描述 有任何问题,欢迎+vx:jasper_8017,我也是个小白,想与志同道合的朋友一起讨论,共同进步!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3