Python的WeRoBot框架开发公众号
生活随笔
收集整理的這篇文章主要介紹了
Python的WeRoBot框架开发公众号
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最終的效果圖:
?
完整代碼:
?
#coding:utf-8
# Filename:return_message5.py
# 被關注回復'Hello World!'
# 收到 笑話 回復糗百笑話,收到收到 電影 回復電影天堂最新電影,
# 收到 blog 回復我的簡書博客,收到 音樂 回復一首音樂
# 收到 fight 回復一句話from werobot import WeRoBot
import random
from werobot.replies import ArticlesReply, Articlerobot = WeRoBot(token='your_token')
# 明文模式不需要下面三項
#robot.config["APP_ID"]=''
#robot.config["APP_SECRET"]=''
#robot.config['ENCODING_AES_KEY'] = ''# 被關注
@robot.subscribe
def subscribe(message):return '''Hello World!
And nice to meet you.
:)
'''# 讀取文檔里的笑話,把前三行存在 data2 里,字符串太長公眾號會報錯
def joke_data():filename = 'qiushibaike.txt'f = open(filename, 'r')data = f.read()f.close()data1 = data.split()data2 = ''for data_i in data1[0:3]:data2 += data_i + '\n' + '\n'return data2# 讀取文檔里的電影名稱
def movie_name():filename = 'movies_name.txt'f = open(filename, 'r')data = f.read()f.close()return data# 從三首音樂里隨機選一首
def music_data():music_list = [['童話鎮','陳一發兒','https://e.coka.la/wlae62.mp3','https://e.coka.la/wlae62.mp3'],['都選C','縫紉機樂隊','https://files.catbox.moe/duefwe.mp3','https://files.catbox.moe/duefwe.mp3'],['精彩才剛剛開始','易烊千璽','https://e.coka.la/PdqQMY.mp3','https://e.coka.la/PdqQMY.mp3']]num = random.randint(0,2)return music_list[num]# 讀取 fight.txt 里的句子,隨機返回一句
def get_fighttxt():filename = 'fight.txt'f = open(filename, 'r')data = f.read()f.close()data1 = data.split()max_num = len(data1) - 1num = random.randint(0, max_num)data2 = data1[num]return data2# 匹配 笑話 回復糗百笑話
@robot.filter('笑話')
def joke(message):data = joke_data()return data
#如果用
#@robot.text
#def joke(message):
# if message.content == "笑話":
#會報錯
#UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal# 匹配 電影 回復電影名稱
@robot.filter('電影')
def movie(message):name = movie_name()return name# blog 回復個人博客
@robot.filter('blog')
def blog(message):reply = ArticlesReply(message=message)article = Article(title="Lansonli",description="Lansonli個人博客",img="https://avatar.csdnimg.cn/0/0/A/3_xiaoweite1_1568355559.jpg",url="https://lansonli.blog.csdn.net")reply.add_article(article)return reply# 匹配 音樂 回復一首歌
@robot.filter('音樂')
def music(message):music1 = music_data()return music1# 匹配 fight 回復一句話
@robot.filter('fight')
def fight(message):data = get_fighttxt()return data# 文本消息返回原文
@robot.text
def echo(message):return message.content# 其他消息返回
@robot.handler
def hello(message):return '(O_o)??'robot.config['HOST'] = '0.0.0.0'
robot.config['PORT'] = 80
robot.run()
?
分步講解:
公眾號分為企業號、服務號和訂閱號,我們這里用訂閱號,適用于個人
注冊訂閱號和購買服務器的過程不再贅述
?
1.驗證服務器
在公眾號后臺配置服務器
填入自己的服務器地址(URL)和Token:
服務器地址可以是IP,也可以是域名,但必須以http://或https://開頭,分別支持80端口和443端口。
Token隨便填,一會代碼里用得到。
選擇明文模式,先不提交。
?
服務器上部署代碼
先安裝werobot
?
pip install WeRoBot
創建 hello_world.py,代碼如下:
?
#coding:utf-8
# Filename:hello_world.py
# 驗證服務器,并且收到的所有消息都回復'Hello World!'import werobotrobot = werobot.WeRoBot(token='your token')# @robot.handler 處理所有消息
@robot.handler
def hello(message):return 'Hello World!'# 讓服務器監聽在 0.0.0.0:80
robot.config['HOST'] = '0.0.0.0'
robot.config['PORT'] = 80
robot.run()
'your token' 處填你的Token,然后運行
?
python hello_world.py
返回公眾號的基本配置頁面,點擊提交,如果沒有報錯就驗證成功了,最后點擊“啟用配置”
?
2.處理文本消息
?
# @robot.text 只處理文本消息
@robot.text
def echo(message):return '111'
?
3.匹配文本的兩種方式
?
# 第一種方式
@robot.text
def joke(message):if message.content == "joke":
# 如果把"joke"換成"笑話"就會報錯,這種方式不能匹配中文# 第二種方式
@robot.filter('笑話')
def joke(message):
# 用 @robot.filter() 可以匹配中文
?
4.讀取本地文檔
?
# 以只讀的方式,讀取同目錄文檔 movies_name.txt 的內容
filename = 'movies_name.txt'
f = open(filename, 'r')
data = f.read()
f.close()
return data
?
5.回復圖文消息
?
# blog 回復個人博客
from werobot.replies import ArticlesReply, Article
@robot.filter('blog')
def blog(message):reply = ArticlesReply(message=message)article = Article(title="v1coder", #標題description="我的個人博客", #簡介img="https://*****.png", #圖片鏈接url="https://www.jianshu.com/u/7cb04d09491e" #點擊圖片后跳轉鏈接)reply.add_article(article)return reply
?
6.回復音樂
?
# 匹配 音樂 回復一首歌
@robot.filter('音樂')
def music(message):# 返回一個長度為四的列表return ['都選C','縫紉機樂隊','https://files.catbox.moe/duefwe.mp3','https://files.catbox.moe/duefwe.mp3']
分布講解完畢。
?
最后:
結束當前代碼運行:Ctrl + C
使程序在Linux下后臺運行 (關掉終端繼續讓程序運行)的方法:
?
輸入命令:
nohup 你的shell命令 &
回車,使終端回到shell命令行
停止程序在 Linux 后臺運行的方法:
?
ps x # 顯示所有進程kill 進程號 # 結束進程
公眾號測試賬號,擁有所有權限
全局返回碼說明,可以根據返回碼信息調試接口,排查錯誤。
?
總結
以上是生活随笔為你收集整理的Python的WeRoBot框架开发公众号的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php-fpm开启报错-ERROR: A
- 下一篇: ZooKeeper简介和概念知识