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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

用 Python 和 werobot 框架开发公众号

發(fā)布時(shí)間:2024/7/23 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用 Python 和 werobot 框架开发公众号 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

From:用 Python 和 werobot 框架開(kāi)發(fā)公眾號(hào):https://www.jianshu.com/p/a517746a900f

?

WeRoBot?官方文檔?:https://werobot.readthedocs.io/zh_CN/latest/

Github :https://github.com/offu/WeRoBot

Python — WeRobot(微信公眾號(hào)開(kāi)發(fā)):https://www.cnblogs.com/cxys85/p/10270277.html

?

?

安裝

?

推薦使用 pip 進(jìn)行安裝:pip install werobot

?

簡(jiǎn)單示例?Hello world

一個(gè)非常簡(jiǎn)單的 Hello World 微信公眾號(hào),會(huì)對(duì)收到的所有文本消息回復(fù) Hello World

import werobotrobot = werobot.WeRoBot(token='tokenhere')@robot.text def hello_world():return 'Hello World!'robot.run()

?

?

微信官方文檔

?

官方文檔地址:https://developers.weixin.qq.com/doc/

?

公眾號(hào)測(cè)試賬號(hào),擁有所有權(quán)限:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

全局返回碼說(shuō)明,可以根據(jù)返回碼信息調(diào)試接口,排查錯(cuò)誤:https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Global_Return_Code.html

?

?

用 Python 和 werobot 框架開(kāi)發(fā)公眾號(hào)

?

自用的公眾號(hào),由于權(quán)限少只有最簡(jiǎn)單的功能:匹配關(guān)鍵字,回復(fù)文字、音樂(lè)、圖文

最終的效果圖:

?

完整代碼:

# coding:utf-8 # Filename:return_message5.py # 被關(guān)注回復(fù)'Hello World!' # 收到 笑話 回復(fù)糗百笑話,收到收到 電影 回復(fù)電影天堂最新電影, # 收到 blog 回復(fù)我的簡(jiǎn)書(shū)博客,收到 音樂(lè) 回復(fù)一首音樂(lè) # 收到 fight 回復(fù)一句話from werobot import WeRoBot import random from werobot.replies import ArticlesReply, Articlerobot = WeRoBot(token='your_token')# 明文模式不需要下面三項(xiàng) # robot.config["APP_ID"]='' # robot.config["APP_SECRET"]='' # robot.config['ENCODING_AES_KEY'] = ''# 被關(guān)注 @robot.subscribe def subscribe(message):return '''Hello World! And nice to meet you. :) '''# 讀取文檔里的笑話,把前三行存在 data2 里,字符串太長(zhǎng)公眾號(hào)會(huì)報(bào)錯(cuò) 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# 讀取文檔里的電影名稱(chēng) def movie_name():filename = 'movies_name.txt'f = open(filename, 'r')data = f.read()f.close()return data# 從三首音樂(lè)里隨機(jī)選一首 def music_data():music_list = [['童話鎮(zhèn)', '陳一發(fā)兒', 'https://e.coka.la/wlae62.mp3', 'https://e.coka.la/wlae62.mp3'],['都選C', '縫紉機(jī)樂(lè)隊(duì)', 'https://files.catbox.moe/duefwe.mp3', 'https://files.catbox.moe/duefwe.mp3'],['精彩才剛剛開(kāi)始', '易烊千璽', 'https://e.coka.la/PdqQMY.mp3', 'https://e.coka.la/PdqQMY.mp3']]num = random.randint(0, 2)return music_list[num]# 讀取 fight.txt 里的句子,隨機(jī)返回一句 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# 匹配 笑話 回復(fù)糗百笑話 @robot.filter('笑話') def joke(message):data = joke_data()return data# 如果用 # @robot.text # def joke(message): # if message.content == "笑話": # 會(huì)報(bào)錯(cuò) # UnicodeWarning: Unicode equal comparison failed to # convert both arguments to Unicode - interpreting them as being unequal# 匹配 電影 回復(fù)電影名稱(chēng) @robot.filter('電影') def movie(message):name = movie_name()return name# blog 回復(fù)個(gè)人博客 @robot.filter('blog') def blog(message):reply = ArticlesReply(message=message)article = Article(title="v1coder",description="我的個(gè)人博客",img="https://upload.jianshu.io/users/upload_avatars/9691564/d4404291-308a-4159-b324-4ae400d8c977.png",url="https://www.jianshu.com/u/7cb04d09491e")reply.add_article(article)return reply# 匹配 音樂(lè) 回復(fù)一首歌 @robot.filter('音樂(lè)') def music(message):music1 = music_data()return music1# 匹配 fight 回復(fù)一句話 @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()

?

?

分步講解:

公眾號(hào)分為企業(yè)號(hào)、服務(wù)號(hào)和訂閱號(hào),我們這里用訂閱號(hào),適用于個(gè)人,注冊(cè)訂閱號(hào)和購(gòu)買(mǎi)服務(wù)器的過(guò)程不再贅述。

?

1.驗(yàn)證服務(wù)器

?

在公眾號(hào)后臺(tái)配置服務(wù)器

?

填入自己的服務(wù)器地址(URL)和Token:

服務(wù)器地址可以是IP,也可以是域名,但必須以http://或https://開(kāi)頭,分別支持80端口和443端口。

Token隨便填,一會(huì)代碼里用得到。

選擇明文模式,先不提交。

?

服務(wù)器上部署代碼

先安裝werobot:

pip install WeRoBot

創(chuàng)建 hello_world.py,代碼如下:

#coding:utf-8 # Filename:hello_world.py # 驗(yàn)證服務(wù)器,并且收到的所有消息都回復(fù)'Hello World!'import werobotrobot = werobot.WeRoBot(token='your token')# @robot.handler 處理所有消息 @robot.handler def hello(message):return 'Hello World!'# 讓服務(wù)器監(jiān)聽(tīng)在 0.0.0.0:80 robot.config['HOST'] = '0.0.0.0' robot.config['PORT'] = 80 robot.run()

'your token' 處填你的Token,然后運(yùn)行

python hello_world.py

返回公眾號(hào)的基本配置頁(yè)面,點(diǎn)擊提交,如果沒(méi)有報(bào)錯(cuò)就驗(yàn)證成功了,最后點(diǎn)擊“啟用配置”

?

2.處理文本消息

?

# @robot.text 只處理文本消息 @robot.text def echo(message):return '111'

?

3.匹配文本的兩種方式

?

# 第一種方式 @robot.text def joke(message):if message.content == "joke": # 如果把"joke"換成"笑話"就會(huì)報(bào)錯(cuò),這種方式不能匹配中文# 第二種方式 @robot.filter('笑話') def joke(message): # 用 @robot.filter() 可以匹配中文

?

4.讀取本地文檔

?

# 以只讀的方式,讀取同目錄文檔 movies_name.txt 的內(nèi)容 filename = 'movies_name.txt' f = open(filename, 'r') data = f.read() f.close() return data

?

5.回復(fù)圖文消息

?

# blog 回復(fù)個(gè)人博客 from werobot.replies import ArticlesReply, Article @robot.filter('blog') def blog(message):reply = ArticlesReply(message=message)article = Article(title="v1coder", #標(biāo)題description="我的個(gè)人博客", #簡(jiǎn)介img="https://*****.png", #圖片鏈接url="https://www.jianshu.com/u/7cb04d09491e" #點(diǎn)擊圖片后跳轉(zhuǎn)鏈接)reply.add_article(article)return reply

?

6.回復(fù)音樂(lè)

?

# 匹配 音樂(lè) 回復(fù)一首歌 @robot.filter('音樂(lè)') def music(message):# 返回一個(gè)長(zhǎng)度為四的列表return ['都選C','縫紉機(jī)樂(lè)隊(duì)','https://files.catbox.moe/duefwe.mp3','https://files.catbox.moe/duefwe.mp3']

分布講解完畢。

?

最后:

結(jié)束當(dāng)前代碼運(yùn)行:Ctrl + C

使程序在Linux下后臺(tái)運(yùn)行 (關(guān)掉終端繼續(xù)讓程序運(yùn)行)的方法:

輸入命令: nohup 你的shell命令 & 回車(chē),使終端回到shell命令行

停止程序在 Linux 后臺(tái)運(yùn)行的方法:

ps x # 顯示所有進(jìn)程kill 進(jìn)程號(hào) # 結(jié)束進(jìn)程

?

?

?

總結(jié)

以上是生活随笔為你收集整理的用 Python 和 werobot 框架开发公众号的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。