广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    为微信公众号开发文本消息

    来源:网络收集  点击:  时间:2024-08-11
    【导读】:
    深入学习微信开发之前,可以先拿发送文本消息作为切入点,当学会开发文本消息后再开发其他类型接口就容易多了。学习本文的前提条件是要搭建好自己的服务器,并且已经将服务器配置到微信公众号后台了。如果还没搭建起自己的服务器的话,可以参考我的另一篇经验。方法/步骤1/4分步阅读

    在学习开发之前先了解一下微信官方推荐的系统架构。微信官方推荐的建构适合比较大型的公众号,整个系统分为业务逻辑层、AccessToken中控服务器、API-Proxy三部分。由于微信接口需要使用access_token作为全局唯一接口调用凭据,同时access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。所以微信推荐设置独立的AccessToken中控服务器。API-Proxy层可以有效的将公众号后台与微信接口分开,避免直接暴漏内部接口,有效防止恶意攻击,提高安全性。

    如果只是一般开发的话,可以省略API-Proxy,另外也可以适当简化AccessToken层。

    2/4

    接下来讲解如何开发文本消息功能。下图是文本消息的基本流程,微信的所有消息都是以XML的形式传递的,文本消息的XML格式如下,其中MsgType表示当前消息是文本消息:

    xmlToUserName!]/ToUserName FromUserName!]/FromUserName CreateTime1460537339/CreateTime MsgType!]/MsgType Content!]/Content MsgId6272960105994287618/MsgId /xml

    3/4

    获取文本消息,看过我另外一篇经验就知道了,微信后台验证使用GET请求,而消息发送就是使用的POST请求,了解这个规范之后,就可以写消息接收方法了。首先判断是否为POST请求:

    elif request.method == POST:

    如果是,则接收全部HTTP内容:

    data = request.read()

    由于不论是文本消息、图片消息还是其他什么类型的消息,它们的XML都包含

    ToUserName、FromUserName、CreateTime、MsgId,MsgType几个参数,因此首先编写一个通用方法用于取得xml对象以及消息类型:def get_message_and_type(message),接下来在POST请求中取得这几类通用值。

    然后根据get_message_and_type()所返回的消息类型,取得具体消息的其它参数。

    接下来使用这些值创建一个新XML字符串:

    def create_text_message(ToUserName, FromUserName, CreateTime, Content, MsgId)。

    最后将新组建的xml字符串返回给微信服务器即可:

    return HttpResponse(content)

    4/4

    学会如何处理文本后,就可以扩展到其它消息了。

    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_1106023.html

    相关资讯

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-07 05:31:26  耗时:0.026
    0.0262s