美文网首页
番外消息推送篇_05

番外消息推送篇_05

作者: 过桥 | 来源:发表于2018-08-31 13:58 被阅读24次

    简述

    本文介绍微信消息推送实现过程

    需求分析

    目前小程序可通过消息模板实现消息推送,但因次数限制,不太符合业务场景,后续考虑,可尝试使用微信网页版消息推送方式,封装成服务,供程序调用实现推送

    实现过程

    使用技术

    wxpy 实现微信页面端相关调用 + flask 实现服务封装

    步骤简述

    ——> bot = Bot() 微信网页版登录 
    ——> bot.friends().search(m_object) 查找接收对象
    ——> o.send(m_content) 发送消息
    ——> app = Flask(__name__) 封装相关服务
    
    使用包
    from functools import wraps
    from flask import Flask, url_for, request, make_response
    from wxpy import *
    
    发送消息方法
    def api_webchat():
        if request.method == "POST":
            m_type = request.form.get('type')
            m_object = request.form.get('name')
            m_content = request.form.get('message')
            print(m_type)
    
            if(m_type == 'friend'):
                object_list = bot.friends().search(m_object)
            else:
                print(m_object)
                object_list = bot.groups().search(m_object)
    
            if(len(object_list) == 0):
                return '没有找到用户或群'
    
            for o in object_list:
                try:
                    o.send(m_content)
                    print(m_content)
                    return 'to send success!'
                except ResponseError as e:
                    print(e.err_code, e.err_msg)
    
    封装服务方法
    app = Flask(__name__)
    
    #跨域
    def allow_cross_domain(fun):
        @wraps(fun)
        def wrapper_fun(*args, **kwargs):
            rst = make_response(fun(*args, **kwargs))
            rst.headers['Access-Control-Allow-Origin'] = '*'
            rst.headers['Access-Control-Allow-Methods'] = 'PUT,GET,POST,DELETE'
            allow_headers = "Referer,Accept,Origin,User-Agent"
            rst.headers['Access-Control-Allow-Headers'] = allow_headers
            return rst
        return wrapper_fun
    
    @app.route('/')
    @allow_cross_domain
    def api_root():
        return 'Welcome Wechat Root!'
    
    实现效果
    Postman
    测试效果

    经验总结

    请求服务跨域

    设置headers['Access-Control-Allow-Origin']='*'

    扫码无法登录

    测试过程中,使用小号连续登录,后手机没电,自动退出,后续再扫码无法登录,但不影响小号微信正常使用,实际使用过程中通过切换微信号登录规避
    注:重新登录前,建议手动检查Python进程,关闭后再登录

    提示群找不到

    测试过程中,发送群消息时,小概率提示找不到群,修改群名称后,能正常使用

    源码

    wechat_RESTfulWebAPI.py

    相关文章

      网友评论

          本文标题:番外消息推送篇_05

          本文链接:https://www.haomeiwen.com/subject/kyrswftx.html