首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >微信公众号推送如何写代码

微信公众号推送如何写代码

作者头像
hide
发布于 2023-12-12 13:00:29
发布于 2023-12-12 13:00:29
40600
代码可运行
举报
文章被收录于专栏:隐身隐身
运行总次数:0
代码可运行

写微信公众号推送的代码需要用到微信公众平台提供的开发者文档和API接口。以下是一个示例代码,包含了获取用户信息和回复文本消息:

python☟☟☟☟☟☟

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import hashlib
import xml.etree.ElementTree as ET
import requests

# 设置接口密钥和Token
api_secret = "your_api_secret"
token = "your_token"

# 验证签名
def check_signature(signature, timestamp, nonce):
    tmp_arr = [token, timestamp, nonce]
    tmp_arr.sort()
    tmp_str = ''.join(tmp_arr)
    sha1_str = hashlib.sha1(tmp_str.encode()).hexdigest()
    return sha1_str == signature

# 处理事件推送
def handle_event(request):
    xml_str = request.data.decode()
    root = ET.fromstring(xml_str)
    if root.find('Event').text == 'subscribe':
        openid = root.find('FromUserName').text
        # 获取用户信息
        user_info_url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN"
        user_info_url = user_info_url.replace("ACCESS_TOKEN", get_access_token())
        user_info_url = user_info_url.replace("OPENID", openid)
        user_info = requests.get(user_info_url).json()
        # 回复文本消息
        reply_xml = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[%s]]></Content></xml>"
        reply_xml = reply_xml % (openid, root.find('ToUserName').text, str(int(time.time())), "欢迎关注," + user_info['nickname'])
        return reply_xml

# 获取access_token
def get_access_token():
    access_token_url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET"
    access_token_url = access_token_url.replace("APPID", api_appid)
    access_token_url = access_token_url.replace("APPSECRET", api_secret)
    access_token = requests.get(access_token_url).json()['access_token']
    return access_token

# 接收微信服务器的请求
@app.route('/wechat', methods=['GET', 'POST'])
def handle_wechat():
    signature = request.args.get('signature')
    timestamp = request.args.get('timestamp')
    nonce = request.args.get('nonce')
    if check_signature(signature, timestamp, nonce):
        if request.method == 'GET':
            return request.args.get('echostr')
        else:
            return handle_event(request)

if __name__ == '__main__':
    app.run()

需要注意的是,以上示例代码是使用Flask框架编写,如果你使用其他框架,需要根据框架需要进行相应的调整。同时,代码中的your_api_secret和your_token需要替换成自己的密钥和Token。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-12-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 高新攀科技 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
微信公众号推送消息笔记
根据业务需要,开发一个微信公众号的相关开发,根据相关开发和整理总结了一下相关的流程和需要,进行一些整理和总结分享给大家,最近都在加班和忙碌,博客已经很久未更新了,打气精神,再接再厉,申请、认证公众号的一系列流程就不在这里赘述了,主要进行的是技术的分享,要达到的效果如下图:
stark张宇
2024/07/23
4400
独立开发微信公众号服务的一次复盘
上篇文章主要分享了异步编程的一些经验。主要包括回调函数,发布订阅,Promise,async await以及yield关键字。
terrence386
2022/07/14
4900
独立开发微信公众号服务的一次复盘
公众号开发:获取用户消息和回复消息
最近在看微信公众号的开发文档,觉得很有意思,可以自定义开发一些功能,比如有人关注了公众号之后,你可以做出稍微复杂点的回复(简单的回复在公众号后台配置就好啦);比如关注者发送了「学习」消息,你可以给他推送一些文章,发送「天气」的消息,你可以回复当前的天气状况;还可以进行素材的管理,用户的管理等等。
Java技术编程
2020/06/10
6.1K0
公众号开发:获取用户消息和回复消息
微信公众号开放接口自定义收发消息
文档地址:https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Explanation_of_interface_privileges.html
biaoblog.cn 个人博客
2025/05/21
2290
微信开发--微信公众号 代码示例
wechart.php <?php include_once "network.php"; function getSHA1($token, $timestamp, $nonce) { $
生南星
2019/07/22
13.2K0
【黄啊码】php结合微信公众号实现裂变海报(基本技术点)
微信公众号裂变式营销代码实现,先讲下基础原理,先生成带有用户参数的二维码,然后用php自带的gd库处理,生成带有用户头像,昵称,参数二维码,营销信息的自定义图片,再将图片传入微信公众号临时素材,当其他用户扫描这个专属推荐码的时候,获取用户的昵称返回给推荐者,并存入数据库,以记录当前有多少人扫描了二维码。
黄啊码
2022/06/15
1K0
微信开发--微信公众号(一)
1.在新浪云服务器的仓库里新建PHP文件,右键url访问,复制url地址在 微信测试账号的 接口配置信息里,Token 随便起一个 (好记的)名字
生南星
2019/07/22
23.3K0
微信开发--微信公众号(一)
分享一个微信公众号开发封装类
<?php /** * 微信公众平台PHP-SDK, 官方API部分 *  @author  dodge <dodgepudding@gmail.com> *  @link https://gi
仙士可
2019/12/19
1K0
Yii2.0实现微信公众号后台开发
1.用户授权接口:获取access_token、openid等;获取并保存用户资料到数据库
botkenni
2019/09/02
1K0
微信公众号开发——2、微信网页开发
在公众号平台下,自定义菜单,添加菜单,并选择菜单内容跳转到指定页面地址即可(需认证后方可添加页面地址,个人账号暂不支持认证)。
全栈程序员站长
2022/09/01
8.1K0
教你搭建微信公众号自动答复机器人
昨天我们的文章中说到:使用图灵机器人作为应答机器人可以满足要求,但是每天的回复条数在不花钱的情况下只能有100条。对于我这样贫困线人口怎么可能每个月花费99元就为了自动回复呢。于是我就在想还有没有其它的方式能够快速做一个请求和应答表呢?
菜鸟小白的学习分享
2020/07/14
2.1K0
教你搭建微信公众号自动答复机器人
手把手教你用图灵机器人做微信公众号自动回复助手 手把手教你用图灵机器人做微信公众号自动回复助手
创建成功后,会自动跳转到机器人设置界面,在这里你可以对机器人进行个性化定制。其实,图灵机器人提供简单的方法,快速接入微信公众号,这太没有挑战性了,对于喜欢搞事情的我们,肯定不能选择这种方法。
尾尾部落
2018/09/04
2.5K1
手把手教你用图灵机器人做微信公众号自动回复助手
		
			手把手教你用图灵机器人做微信公众号自动回复助手
微信公众号投票活动开发
Emmmmm 今天Leader不在家,悄悄給大家分享一个微信公众号网页开发,以及获取用户信息开发。 今天leader给了一个公众号投票的需求 1、每个微信只能投一票 2、不能重复投票。防止刷票。
猿码优创
2019/07/28
3.8K0
【除夕夜特辑】手把手教你微信公众号开发
各位读者朋友们好,今天是除夕,在这里先祝大家新年快乐。这篇文章其实是一个星期前写的,一直在电脑里放着,赶上今天的好日子,机缘巧合的情况下被我重新发现,于是就发布出来了。
wangweijun
2021/10/25
9660
【除夕夜特辑】手把手教你微信公众号开发
微信公众平台-微信服务号开发
近期接到了涉及微信开放平台和微信公众平台相关的开发需求,开发过程中踩了许多坑,把相关问题整理记录下来以便巩固记忆,并把总结的经验分享出来,本篇分享微信服务号开发,希望可以给大家提供帮助
全栈程序员站长
2022/07/28
9.4K0
微信公众平台-微信服务号开发
巧用 Serverless,轻松搭建微信公众号的智能后台服务
一般来说,想给微信公众号增加更多的功能,需要有一台服务器,来进行公众号后台服务的搭建。那么在 Serverless 架构下,是否有更简便的方法来实现这么一个公众号后台呢?我们试试? 初步搭建 一、Serverless 原生开发 首先要有一个微信公众号! 接下来,我们要为我们的函数计算服务申请固定 IP: 点击白名单之后,我们可以填写表单,完成固定公网出口 IP 的申请。 接下来进行代码开发。 将函数绑定到公众号后台,并按照文档在函数中完成一个基本的鉴定功能: def checkSignature(
腾讯云serverless团队
2020/05/22
3.9K0
公众号接入 chatGPT 教程(附源码)
上传下面的python文件到你的服务器,并修改代码段中相应位置代码(token、api-key、port)
攻城狮杰森
2023/02/16
8.1K23
公众号接入 chatGPT 教程(附源码)
微信公众号消息接入(普通消息+模板消息)
  1、“硅谷课堂”公众号实现根据关键字搜索相关课程,如:输入“java”,可返回java相关的一个课程;
别团等shy哥发育
2023/02/25
4.1K0
微信公众号消息接入(普通消息+模板消息)
nodejs微信公众号开发
网上关于node开发公众号的资料相当缺乏,本文旨在以node的视角对公众号开发做一个阐述。
一粒小麦
2019/08/06
6.5K4
手把手教你如何微信公众号开发「建议收藏」
最近的话,发现微信开发其实也有很多挺有意思的地方,比如最近很火的一款游戏“跳一跳”,也让我如此着迷。。但是,今天我所要讲的并不是对于小程序的开发,而是要说一下,关于微信开发的另外一个内容,那就是微信公众号。。
全栈程序员站长
2022/09/25
3.6K0
手把手教你如何微信公众号开发「建议收藏」
推荐阅读
相关推荐
微信公众号推送消息笔记
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档