最近老大叫我学习开发微信,试着玩了下。网上查了下文档。有点过时。

简单步骤:

1)申请服务器并完成环境配置

腾讯云购买云服务器。当然你也可以购买其他产品,比如阿里云。因为我是学生,有优惠110一年。我开的是centos7的操作系统。linux的一个版本。开通后可以看到自己的公网IP。

这里我用的是xshell。可以直接连接自己的Linux服务器。当然你也可以去腾讯云自己登录。输入ssh 上面得公网IP.然后点击接受并保存。

777

之后会提示用户名,输入root,再弹出输入密码。密码可以去腾讯云里得站内信看,或者更改。 到这里,应该连接成功了。

先验证下python吧,可以看到输为3.6.5。因为开发微信公众号要安装python,而centos自带python2.7。我另外装了个python3.6的。因为再学习和开发中,一个版本是不够的。而版本多了的话,又会出现很多问题。这里不说。有另外文章说明Linux的版本共存和控制问题。还要一个问题就是liunx命令,不管你懂是不懂。这是我自己以前整理的linux基本命令思维导图。还不完整,但是基本的都有了,你们可以参考。之后还要安装一些开发所需要的库。,通过pip命令,这里也不多讲,都是很简单的事。命令如下:

pip install web.py

pip install libxml2

pip install libxslt

pip install lxml

2)测试服务器

输入命令:vim main.py(点击查看vim基本命令)

编辑代码:

# coding=utf-8
#filename: main.py
import web
urls=(
    '/dzsoft','Handle'
)
class Handle(object):
    def GET(self):
        return "hello,world"
if __name__ == '__main__':
    app=web.application(urls,globals())
    app.run()
             

编辑完之后运行:python main.py 80。

然后浏览器运行,把0.0.0.0替换成服务器的IP。如下图显示,hello,world

3)公众号token配置

公众号我已经申请了,点击左下角的基本配置,服务器配置。如下图:

此时点提交没用,因为服务器还不知道你的暗号。回去修改main.py。要添加一个文件。名为handle。代码应该看的懂不。不讲解。

#coding=utf-8
#filename: main.py
import web
from handle import Handle
urls=(
    '/dzsoft','Handle'
)

if __name__ == '__main__':
    app=web.application(urls,globals())
    app.run()
  # coding: utf-8
  # filename: handle.py
  import hashlib
  import web
  class Handle (object):
     def GET(self):
         data=web.input() #获取输入参数
         if len(data)==0:
          return 'o,xjm'
         signature = data.signature
         if len(signature)==0:
             return 'lalala'
         timestamp = data.timestamp
         nonce = data.nonce
          echostr = data.echostr
         token = "xjm"  #令牌,与服务器配置保持一致

         list = [token, timestamp, nonce]
         list.sort()
         sha1 = hashlib.sha1()
         map(sha1.update, list)
         hashcode = sha1.hexdigest()

         if hashcode == signature:
              return echostr
              print(echostr)
         else:
               return ""

handle.py

这里有个坑,我之后提交时token一直验证失败,因为我用的是python3版本。后面我在python2环境下提交代码。token验证成功。

4)机器人自动回复功能

机器人是图灵的api。通过发送POST请求。代码我写好了。

Python微信公众号开发的更多相关文章

  1. Python微信公众号开发—小白篇

    本文面向想通过Python学习公众号开发的同学.一站式解决新手开发微信公众号遇到的所有问题. 为了防止我的文章被到处转载,贴一下我的公众号[智能制造专栏],欢迎大家关注. github仓库地址http ...

  2. Python微信公众号开发—小白篇(1)

    本文面向想通过Python学习公众号开发的同学.一站式解决新手开发微信公众号遇到的所有问题. 为了防止我的文章被到处转载,贴一下我的公众号[智能制造社区],欢迎大家关注. github仓库地址http ...

  3. python微信公众号开发学习记录

    网上有很多微信公众号的开发教程,但是都是好几年前的了,而且很多都是抄袭其他人的,内容几乎一模一样.真的无语了.只好自己总结一下开发的一些简单流程. 一先去注册个微信公众号,这个就不详细说了, 二登录后 ...

  4. [Python] 微信公众号开发 Python3

    搭建服务 开通一个阿里云ecs,安装python3及需要的包(参考下方官方文档) 将py文件保存在ecs上,运行 在本地访问阿里云的IP地址 能完成这步说明网络没问题 server.py 1 # -* ...

  5. python之微信公众号开发(基本配置和校验)

    前言 最近有微信公众号开发的业务,以前没有用python做过微信公众号开发,记录一下自己的学习和开发历程,共勉! 公众号类型 订阅号 普通订阅号 认证订阅号 服务号 普通服务号 认证服务号 服务方式 ...

  6. 微信公众号开发被动回复用户消息,回复内容Content使用了"\n"换行符还是没有换行

    使用语言和框架:本人后端开发使用的Python的DRF(Django REST framework)框架 需求:在微信公众号开发时,需要实现自动回复,即被关注回复.收到消息回复.关键词回复 发现问题: ...

  7. Python微信公众号教程基础篇——收发文本消息

    1. 概述: 在本篇教程中,你将学会使用华为云弹性云服务器(以下简称 ECS)搭建微信公众号处理后台,使用Python语言编写对应的微信消息处理逻辑代码,接收从微信服务端转发过来的消息,并返回处理结果 ...

  8. 微信公众号开发(一)--验证服务器地址的Java实现

    现在主流上都用php写微信公众号后台,其实作为后端语言之一的java也可以实现. 这篇文章将对验证服务器地址这一步做出实现. 参考资料:1.慕课网-<初识java微信公众号开发>,2.微信 ...

  9. C#微信公众号开发系列教程三(消息体签名及加解密)

    http://www.cnblogs.com/zskbll/p/4139039.html C#微信公众号开发系列教程一(调试环境部署) C#微信公众号开发系列教程一(调试环境部署续:vs远程调试) C ...

随机推荐

  1. HTML入门笔记案例展示(2)

    结上一篇(1)http://blog.csdn.net/qq_32059827/article/details/51399288 6.超链接(重要): 超链接标签 就是 a 标签 <!-- 超链 ...

  2. JAVA之旅(二)——if,switch,for,while,do while,语句嵌套,流程控制break , continue ,函数,重载的示例总结

    JAVA之旅(二)--if,switch,for,while,do while,语句嵌套,流程控制break , continue ,函数,重载的示例总结 JAVA的思想真的很重要,所以要专心的学-- ...

  3. Make3D Convert your image into 3d model

    Compiling and Running Make3D on your own computer source: http://make3d.cs.cornell.edu/code_linux.ht ...

  4. 基于ARM-contexA9蜂鸣器驱动开发

    上次,我们写了一个LED的驱动程序,这一节,我们只需稍微改动一下就可以实现蜂鸣器的驱动,让我们来看看吧. 还是跟之前一样,先找电路图,找到电路板上对应的引脚和相关联的寄存器. 1.看电路图 (1)蜂鸣 ...

  5. C++智能指针及其简单实现

    本文将简要介绍智能指针shared_ptr和unique_ptr,并简单实现基于引用计数的智能指针. 使用智能指针的缘由 1. 考虑下边的简单代码: int main() { ); ; } 就如上边程 ...

  6. 根据分析查看相关知识点分析iOS 三种录制视频方式

    这篇文章讨论了关于如何配置视频捕获管线 (pipeline) 和最大限度地利用硬件性能的一些不同选择. 这里有个使用了不同管线的样例 app,可以在 GitHub 查看. 第一种:UIImagePic ...

  7. C++之默认参数

    C++可以为不指定参数提供默认值.一旦给一个参数赋了默认值,后面的所有参数,也都必须为默认值,并且默认值的类型也必须正确,默认值可以在原型或者函数定义中给出,但是不能两个位置同时给出. 接下来我们上代 ...

  8. Media Player Classic - HC 源代码分析 4:核心类 (CMainFrame)(3)

    ===================================================== Media Player Classic - HC 源代码分析系列文章列表: Media P ...

  9. hibernate链接数据库链接池c3p0配置

    [html] view plain copy <bean id="dataSourceLocal" name="dataSource" class=&qu ...

  10. 8 个实用的 Bootstrap 3 案例教程

    Bootstrap 3发布各大设计论坛议论纷纷.这次Bootstrap 3最大的特点就是--扁平化.下面就是一些早期的Bootstrap 3例子,不过亲们注意咯,因为大部分最早期的测试案例,可能用到一 ...