日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

个人微信公众号搭建Python实现 -个人公众号搭建-处理消息和事件(14.3.4)

發布時間:2024/8/24 编程问答 24 如意码农
生活随笔 收集整理的這篇文章主要介紹了 个人微信公众号搭建Python实现 -个人公众号搭建-处理消息和事件(14.3.4) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

@

目錄
  • 1.消息處理
  • 2.事件處理
  • 3.返回處理
  • 關于作者

1.消息處理

現在只處理text文本消息

沒有關鍵字的就交給qingyunke機器人去應付,這是一個免費的對話api

從配置文件中讀取關鍵字信息,如果存在某個關鍵字就返回對應的

返回的時候要傳之前用戶的信息,所以這里就直接把微信服務器發送過來的xml文件轉為dict傳過來

返回給用戶信息時,如果是文字就不做處理的讀取配置信息的內容

如果發現關鍵字對應的信息以pic_開頭,說明返回的是圖片(這里使用了切片)

import ReturnMessage
import json
from requests import request
def Processing(xml_dict,msg_type,SET):
if msg_type == "text":
return Text(xml_dict,SET)
else:
return Others(xml_dict) def Text(xml_dict,SET):
Content = str.lower(xml_dict.get("Content"))
Copyright = SET["MAIN"]
#使用run啟動,keyword.json對應著run的目錄
with open(r'../resource/KeyWord.json', 'r', encoding="utf-8") as f:
KeyWord = json.load(f)
if Content in KeyWord.keys():
if KeyWord[Content][0:4] == "pic_":
return ReturnMessage.ReturnPic(xml_dict,KeyWord[Content][4:])
else:
return ReturnMessage.ReturnText(xml_dict,Copyright +"\n\n"+ KeyWord[Content])
else:
url = "http://api.qingyunke.com/api.php?key=free&appid=0&msg=%s" % Content
rep = request("get", url)
msg_ = rep.content.decode()
dict = json.loads(msg_)
return ReturnMessage.ReturnText(xml_dict,dict["content"]) def Others(xml_dict):
return ReturnMessage.ReturnException(xml_dict)

2.事件處理

這里就只處理訂閱事件,返回一個歡迎信息

import ReturnMessage

def Processing(xml_dict,Event):
if Event == "subscribe":
return Subscribe(xml_dict)
elif Event == "unsubscribe":
Unsubscribe(xml_dict)
else:
return Others(xml_dict) def Subscribe(xml_dict):
return ReturnMessage.ReturnText(xml_dict,"歡迎訂閱") def Unsubscribe(xml_dict):
pass def Others(xml_dict):
return ReturnMessage.ReturnException(xml_dict)

3.返回處理

一共有三個方法,一是返回自定義文字,二是返回固定文字,三是返回圖片

這里都是查看的官方文檔去構造的返回數據

將dict轉化為xml返回給微信服務器

返回圖片的時候,是返回圖片的id(用永久素材的id)

import time

def  ReturnText(xml_dict,text):
resp_dict = {
"xml":{
"ToUserName":xml_dict.get("FromUserName"),
"FromUserName":xml_dict.get("ToUserName"),
"CreateTime":int(time.time()),
"MsgType":"text",
"Content":text
}
}
return resp_dict def ReturnException(xml_dict):
resp_dict = {
"xml":{
"ToUserName":xml_dict.get("FromUserName"),
"FromUserName":xml_dict.get("ToUserName"),
"CreateTime":int(time.time()),
"MsgType":"text",
"Content":"目前只支持文字類型"
}
}
return resp_dict def ReturnPic(xml_dict,id):
resp_dict = {
"xml":{
"ToUserName":xml_dict.get("FromUserName"),
"FromUserName":xml_dict.get("ToUserName"),
"CreateTime":int(time.time()),
"MsgType":"image",
"Image":{"MediaId":id}
}
}
return resp_dict

關于作者

個人博客網站

個人GitHub地址

個人公眾號:

總結

以上是生活随笔為你收集整理的个人微信公众号搭建Python实现 -个人公众号搭建-处理消息和事件(14.3.4)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。