使用python建構微信公眾平台方法

高洛峰
發布: 2017-03-19 17:57:26
原創
1715 人瀏覽過

這篇文章主要介紹了python搭建微信公眾平台的相關資料和技巧,文中給出了詳細的python搭建微信公眾平台的步驟,有興趣的朋友可以參考一下

本文主要是一步一步教大家如何利用python搭建微信公眾平台,有興趣的朋友可以參考一下

使用的工具,python 新浪SAE平台,微信的公眾平台

你需要先在微信的公眾平台與新浪SAE平台上各種註冊,微信平台註冊的時候需要你拍張手持身分證的照片,還有幾天的審核期

#微信公眾平台:http://mp.weixin .qq.com

新浪SAE:http://sae.sina.com.cn/

等待微信大眾審核通過後,登入公眾平台後,點選進階功能。將會看到需要提供一個存取資訊:

使用python建構微信公眾平台方法

微信介面設定

那麼我們需要一個網址作為介面(這時就需要SAE上搭建Python的一個應用),Token呢,就是相當於我們和微信之間約定的“密碼”,這裡可以隨便填寫英文或者數字,但實測輸入純數字有時會有問題,所以還是字符串比較可靠。

第一步,在SAE上建構python的應用,在下圖的應用選擇python應用。

使用python建構微信公眾平台方法

 填好二級網域名稱和應用程式名稱等,選擇好語言。這裡我們使用Python開發選擇web應用程式。創建好應用程式之後,在程式碼管理中建立一個新的版本。而後我們可以選擇編輯程式碼。能夠實現線上編輯,根本用不著配置本地環境,SVN等等。當然像這種輕量級的應用在線編輯器就可以了,SVN的話還不如在線編輯好用

#第二步,編寫index.wsgi

因為我們使用的是web.py框架,因為其良好的xml解析。

先寫config.yaml

name: yangyanxing
version: 1
 
libraries:
- name: webpy 
 version: "0.36"
 
- name: lxml
 version: "2.3.4"
 
...
登入後複製

注意嚴格的縮進,差一個空格你就廢了!而且調試的時候很不好發現問題。 。 。

接著我們繼續寫index.wsgi

# coding: UTF-8
import os
 
import sae
import web
 
from weixinInterface import WeixinInterface
 
urls = (
'/weixin','WeixinInterface'
)
 
app_root = os.path.dirname(__file__)
templates_root = os.path.join(app_root, 'templates')
render = web.template.render(templates_root)
 
app = web.application(urls, globals()).wsgifunc()  
application = sae.create_wsgi_app(app)
登入後複製

簡單解釋一下,



# #from weixinInterface import WeixinInterface

使用python建構微信公眾平台方法

這裡我們需要再建立一個weixinInterface的py文件,你也可以將這個類別寫在index.wsgi檔案中,只是這樣看起來會亂亂的

新建一個weixinInterface.py文件,注意大小寫,寫入以下程式碼

#
# -*- coding: utf-8 -*-
import hashlib
import web
import lxml
import time
import os
import urllib2,json
from lxml import etree
 
class WeixinInterface:
 
 def __init__(self):
  self.app_root = os.path.dirname(__file__)
  self.templates_root = os.path.join(self.app_root, 'templates')
  self.render = web.template.render(self.templates_root)
 
 def GET(self):
  #获取输入参数
  data = web.input()
  signature=data.signature
  timestamp=data.timestamp
  nonce=data.nonce
  echostr=data.echostr
  #自己的token
  token="yangyanxing" #这里改写你在微信公众平台里输入的token
  #字典序排序
  list=[token,timestamp,nonce]
  list.sort()
  sha1=hashlib.sha1()
  map(sha1.update,list)
  hashcode=sha1.hexdigest()
  #sha1加密算法  
 
  #如果是来自微信的请求,则回复echostr
  if hashcode == signature:
   return echostr
登入後複製

這裡定義了一個GET方法,是根據微信公共平台的要求,進行的token驗證,因為這裡我們定義了templates_root為根目錄下的templates,所以還要在根目錄下建立一個目錄templates的目錄使用python建構微信公眾平台方法

因為微信是將驗證訊息GET發出去的,所以這裡使用了GET方法來取得值並且返回相應用值保存全部,現在回到微信的公眾平台高級管理介面微信介面配置

在url裡面填寫你在新浪SAE裡應用名稱並且加上/weixin,如:http://XXXX.sinaapp.com/weixin token隨便輸入,只要注意更改weixinInterface.py中的token就行了,輸入好了以後點擊提交,如果沒有什麼問題的話就會通過驗證!

 

第三個步驟


,新建一個簡單的自動回覆的方法

,鸚鵡學舌,就是用戶說什麼,它也回復什麼,沒什麼用,只是隨便玩玩!

在weixinInterface.py裡繼續加入程式碼

######
def POST(self):  
  str_xml = web.data() #获得post来的数据
  xml = etree.fromstring(str_xml)#进行XML解析
  content=xml.find("Content").text#获得用户所输入的内容
  msgType=xml.find("MsgType").text
  fromUser=xml.find("FromUserName").text
  toUser=xml.find("ToUserName").text
  return self.render.reply_text(fromUser,toUser,int(time.time()),u"我现在还在开发中,还没有什么功能,您刚才说的是:"+content)
登入後複製
######### 這個def 是和上一個GET同級的,注意縮進######接著我們在templates目錄下建立reply_text.xml模板文件,寫入以下程式碼############
$def with (toUser,fromUser,createTime,content)
<xml>
<ToUserName><![CDATA[$toUser]]></ToUserName>
<FromUserName><![CDATA[$fromUser]]></FromUserName>
<CreateTime>$createTime</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[$content]]></Content>
</xml>
登入後複製
#######

注意這裡的toUser與fromUser是剛才post的是相反的,因為這裡的toUser也就是POST函數裡的fromUser,這裡的fromUser也就是POST函數裡的toUser,msgType是text

#全部保存,現在就在用你的個人微信關註一下你創建的公眾微信號,然後隨便輸入些內容,如果沒有什麼問題,你將會收到一條鸚鵡學舌的回复內容!

以上就是python搭建微信公眾平台的全部內容,大家可以依照上述步驟進行搭建。

以上是使用python建構微信公眾平台方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板