目前有在项目分组,就小组成员中,微信群消息回复较多的情况下,想根据组来转发特定消息,包含文字、图片、语言等。在此只是自己实现仅供参考,可以根据自身需求修改更多功能。

二、代码

2.1 企业微信相关信息

企业ID:corpid

自建应用appid

自建应用secret

2.2 服务端部署 运行环境: python 版本 2.7

git clone https://github.com/redhatxl/wechatmsg.git

nohup python2.7 wechatmsg/wx_msg_server.py &

复制代码

2.3 参考RUL:

2.4 代码

# flask 框架后台

def server_run(self):

app = Flask(__name__)

@app.route('/index', methods=['GET', 'POST'])

def index():

wxcpt = WXBizMsgCrypt(self.sToken, self.sEncodingAESKey, self.sCorpID)

# 获取url验证时微信发送的相关参数

sVerifyMsgSig = request.args.get('msg_signature')

sVerifyTimeStamp = request.args.get('timestamp')

sVerifyNonce = request.args.get('nonce')

sVerifyEchoStr = request.args.get('echostr')

# 验证url

if request.method == 'GET':

ret, sEchoStr = wxcpt.VerifyURL(sVerifyMsgSig, sVerifyTimeStamp, sVerifyNonce, sVerifyEchoStr)

print type(ret)

print type(sEchoStr)

if (ret != 0):

print "ERR: VerifyURL ret:" + str(ret)

sys.exit(1)

return sEchoStr

# 接收客户端消息

if request.method == 'POST':

sReqMsgSig = sVerifyMsgSig

sReqTimeStamp = sVerifyTimeStamp

sReqNonce = sVerifyNonce

sReqData = request.data

print(sReqData)

ret, sMsg = wxcpt.DecryptMsg(sReqData, sReqMsgSig, sReqTimeStamp, sReqNonce)

print ret, sMsg

if (ret != 0):

print "ERR: DecryptMsg ret: " + str(ret)

sys.exit(1)

# 解析发送的内容并打印

xml_tree = ET.fromstring(sMsg)

print('xml_tree is ', xml_tree)

复制代码

消息内容发送

def _send_text_msg(self, content):

data = {

"touser": ('|').join(self.userid.split(',')),

"toparty": ('|').join(self.partid.split(',')),

# "toparty":int(self.partid),

"msgtype": "text",

"agentid": self.agent_id,

"text": {

"content": content

},

"safe": 0

}

try:

response = requests.post(self.send_msg_url.format(self.access_token), json.dumps(data))

self.logoper.info(response.text)

print(response.text)

result_msg = json.loads(response.content)['errmsg']

return result_msg

except Exception as e:

self.logoper.info(e)

复制代码

日志

def create_dir(self):

"""

创建目录

:return: 文件名称

"""

_LOGDIR = os.path.join(os.path.dirname(__file__), self.logdir_name)

_TIME = time.strftime('%Y-%m-%d', time.gmtime()) + '-'

_LOGNAME = _TIME + self.logfile_name

LOGFILENAME = os.path.join(_LOGDIR, _LOGNAME)

if not os.path.exists(_LOGDIR):

os.mkdir(_LOGDIR)

return LOGFILENAME

def create_logger(self, logfilename):

"""

创建logger对象

:param logfilename:

:return: logger对象

"""

logger = logging.getLogger()

logger.setLevel(logging.INFO)

handler = logging.FileHandler(logfilename)

handler.setLevel(logging.INFO)

formater = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

handler.setFormatter(formater)

logger.addHandler(handler)

return logger

复制代码

配置文件

# 定义微信公众号信息

[common]

# 企业微信企业ID

corpid = wxe23xxxxxxxxxxx

# 接收消息 服务器 配置

[recmsg]

Token = mVNAAw3xxxxxxxxxxxxxxxxx

EncodingAESKey = vwbKImxc3WPeE073xxxxxxxxxxxxxxxxxx

# 自建应用信息

[appconfig]

# 自建应用agentid

agentid = 1000002

# 自建应用secret

secret = 6HAGX7Muw36pv5anxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

# 消息接收信息

# 消息接收用户id,如果多个用户用英文','隔开

userid = xuel|yaoy

# 消息接收部门id,如果多个用英文','隔开

partid = 11

[urlconfig]

# 获取应用token的api接口

get_access_token_url = https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={}&corpsecret={}

# 发送消息api接口

send_msg_url = https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={}

# 上传媒体api接口,获取mediaid

upload_media_url = https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token={}&type=image

# 上传高清语音接口

upload_video_url = https://qyapi.weixin.qq.com/cgi-bin/media/get/jssdk?access_token={}&media_id={}

[loginfo]

#日志目录

logdir_name = logdir

#日志文件名称

logfile_name = wechat_server.log

复制代码

三、测试

在企业微信发送消息,可以修改配置文件制定转发到特定的群组,从而避免消息分流。 启用应用API,设置回调地址

测试发送消息

查看接受消息

四、优化

后期可以配合 数据库 将每次获取的access_token 保存至数据库,待2小时过期后,再重新获取新的。

更多内容转发

企业消息转发服务器,Python构建企业微信自动消息转发服务端相关推荐

  1. Python构建企业微信智能应答机器人(含服务器部署)

    有定制化需求可私信联系 文章目录 简介 基本概念 corpid agentid和secret touser 安装 初试 获取access_token 发送应用消息 Python高并发服务部署--Ngi ...

  2. python 消息 推送服务器,从客户端发送字符串消息到服务器Python

    我无法运行我的代码,只要我将这些发送线添加到客户端和服务器中的recv行.我不知道什么是错的.没有他们,程序运行完美.我为了便于调试而粘贴了尽可能小的代码,因为如果没有这些代码,代码是完美的.从客户端 ...

  3. chatgpt赋能python:Python如何给微信群发消息?

    Python如何给微信群发消息? 概述 微信是全球最受欢迎的聊天应用程序之一,拥有数十亿用户.在这些用户中,许多人都属于微信群.微信群是集体聊天,可以让您与朋友.同事或家人交流.您可以在群中分享照片. ...

  4. 【Python】基于 Flask 框架,模拟微信朋友圈的服务端

    [Python]基于 Flask 框架,模拟微信朋友圈的服务端 一.目的:模拟微信朋友圈的服务端,需要满足以下场景: 1.发表内容时带上图片信息,内容包括(具体内容和id,id指定全局唯一标识),客户 ...

  5. 怎么取消微信送票服务器,智行火车票如何关闭微信自动扣费服务 微信怎么关闭智行火车票自动扣费授权...

    在使用智行火车票的时候,大家都将感受到轻松氛围的,在上面还能进行轻松的设置,大家要是经常使用软件来享受服务的时候,将能轻松开启相应的自动扣费操作,因为多次消费,每次都要输入密码是比较麻烦的,大家都直接 ...

  6. 微信app支付功能-服务端的实现-python3版

    微信app支付功能-服务端的实现-python3版 一:需求说明 二:微信app支付处理流程 三:所需依赖 3.1 支付配置 四:接口开发 4.1 创建订单接口 4.2 微信异步回调接口 4.3 订单 ...

  7. 小程序PHP CGI,微信小程序php服务端nginx配置

    微信小程序php服务端nginx配置 微信小程序server端如果选择自己部署的话,可以选择java或者php的,为了省事我选择了php的,腾讯是用CodeIgniter框架做的demo,由于CI框架 ...

  8. Android安卓原生接入微信app支付PHP服务端

    Android安卓接入微信app支付PHP服务端 1.进入微信商户平台查看统一下单接口文档. 在查看完统一下单文档后,能够看到需要传递给微信"统一下单接口"地址的参数有哪些 统一下 ...

  9. python批量下载文件只有1kb_详解如何用python实现一个简单下载器的服务端和客户端...

    话不多说,先看代码: 客户端: import socket def main(): #creat: download_client=socket.socket(socket.AF_INET,socke ...

  10. 浅谈对腾讯云微信小程序解决方案服务端的理解(主要针对信道服务)

    浅谈对腾讯云微信小程序解决方案服务端的理解(主要针对信道服务) 参考文章: (1)浅谈对腾讯云微信小程序解决方案服务端的理解(主要针对信道服务) (2)https://www.cnblogs.com/ ...

最新文章

  1. 朱晔和你聊Spring系列S1E7:简单好用的Spring Boot Actuator
  2. 疑难杂症--单回话下 WITH(NOLOCK)返回更多数据
  3. mysql的如何输入dateadd_mysql中date_add()函数的使用?
  4. SpringMVC源码——未完待续
  5. Redis入门到精通-Redis数据类型
  6. python中利用pygame模块输出文字
  7. conda install 等价与pip install -e .
  8. 【Android 】【Monkey Demons】 针对性的进行稳定性测试
  9. 小爱同学音色定制服务器响应失败,小爱同学自定义音色
  10. 卡巴斯基蓝屏问题处理
  11. astah pro 7.2.0(UML建模工具)下载安装教程
  12. w ndows7家庭版好不好用,windows7怎么样 windows7哪个版本好用【详细介绍】
  13. 用卷积神经网络(CNN)识别文字
  14. 笔记本电脑亮度不能调节的一种解决方案
  15. 2021年 CISCN writeup
  16. 木鱼cms系统审计小结
  17. 双重检查锁单例模式为什么要用volatile关键字?
  18. UML统一建模语言第7章 状态机图和活动图课后习题
  19. 问题复盘:一个Redisson驱动源码BUG
  20. linux 找回网卡的uuid_Linux系统怎么查看网卡的UUID

热门文章

  1. Win10电脑不能读取U盘怎么办?不识别U盘怎么解决?
  2. 服务器被入侵怎么办,如何预防
  3. JavaScript里的语句用分号结尾是个选项吗
  4. Guava-Joiner工具类
  5. iOS 上架App Store 遇到的坑
  6. 搭建STM32的开发环境
  7. 电源电流测试软件,如何使用分流器进行测试直流电源电流?
  8. 微信公众号开发-取得AccessToken
  9. 阿里云服务器能怎么玩呢?
  10. Spring RCE 0day高危漏洞预警