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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Python的WeRoBot框架开发公众号

發布時間:2023/11/28 生活经验 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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框架开发公众号的全部內容,希望文章能夠幫你解決所遇到的問題。

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