摘要:過程就是這么簡單,騰訊云服務(wù)器作為基礎(chǔ),我們?nèi)滩挥檬謩优渲米约旱姆?wù)器,多么輕松愜意。
推薦理由:
之前我對搭建微信機器人挺感興趣的,心血來潮就做了一個圖靈機器人,感覺自己長見識了,今天無意間發(fā)現(xiàn)了這篇文章,才發(fā)現(xiàn)自己已經(jīng)out了,原來還有這么叼的微信機器人,可以在微信與我們聊天的機器人,它完全不同于圖靈機器人那種API完成一些看似很好玩的聊天功能,真正可以為我們所用;所以小編這次特意給大家推薦下,來幫助大家更好地認識如何借助騰訊云快速實現(xiàn)微信機器人的思路。
前言
我是一名產(chǎn)品經(jīng)理,平時對技術(shù)比較感興趣,也正是因為對技術(shù)有所了解也讓我的工作非常輕松,平時也看過很多技術(shù)文章,我認為技術(shù)文章要么就是給純技術(shù)寫的,要么就是給那些沒有很深的編程基礎(chǔ)但是熱愛編程或者抱有期待的人看的,這篇文章是寫給后者的,但是不代表內(nèi)容非?;A(chǔ),依然使用了目前比較熱門的技術(shù)。
這次我們要做一個微信機器人,就是可以在微信與我們聊天的機器人,當然目的不是用圖靈機器人那種API完成一些看似很好玩的聊天功能,好歹要讓這個機器人有所作用。
那么來說說我的需求吧,我和朋友做了一個航模視頻的自媒體,作為一個產(chǎn)品經(jīng)理,我需要了解我發(fā)布的視頻的實時播放量,但是完成這個操作需要進入優(yōu)酷主頁查看,包括還有每個視頻的播放量數(shù)據(jù)都要自己去打開網(wǎng)頁看,這樣非常不方便,比如我們在群里聊到了播放量的話,那么就會有一個機器人告訴我們播放了多少,這樣多么方便,而且看起來還很裝逼,并且,想實現(xiàn)出來真的不難。
前提是我們已經(jīng)站在巨人的肩膀上。
技術(shù)路徑和實現(xiàn)思路
首先編程語言使用了Python,Python語法簡潔、第三方擴展豐富,也因為這里采用的微信消息框架itchat是基于Python的。
服務(wù)器當然使用騰訊云服務(wù)器,這里我使用的是單核1G內(nèi)存的最低配置,因為作為個人用的這個配置綽綽有余了,并且以后有更多用途的時候可以直接升級服務(wù)器配置和存儲,這就是云服務(wù)器的巨大優(yōu)勢。
因為對于大部分人來說,拿到一臺嶄新的服務(wù)器要部署服務(wù)是非常麻煩的,所以我也不喜歡,于是乎想到了使用docker容器來運行我的代碼,這樣不用手動去配置服務(wù)器的運行環(huán)境,我只需要創(chuàng)建一個docker鏡像就可以了,但是這樣感覺還是挺麻煩的,還要安裝docker,還要上傳鏡像。然后我發(fā)現(xiàn)了daocloud,它可以幫助我完成容器管理和鏡像生成的工作。
所以我們部署路徑是這樣的:
編寫代碼->提交代碼到github上->daocloud自動生成docker鏡像并部署到我們的云服務(wù)器上->自動運行
也就是提交代碼到分支,然后,然后自動更新發(fā)布,服務(wù)就這么運行成功了
具體過程
所以對云服務(wù)器的配置而言,我只需要為其安裝daocloud的被控端程序即可,然后就可以再也不用管這臺服務(wù)器了,太爽了吧~
恰好發(fā)現(xiàn)騰訊云也支持了daocloud的系統(tǒng),在為云服務(wù)器安裝系統(tǒng)的時候選擇服務(wù)市場-Docker容器-Daocloud混合式容器管理平臺即可。
哇,那這樣豈不是爽上加爽,不用登錄服務(wù)器做任何配置~拿來即用,真刺激。
安裝過程就不多說了,他們也提供了文檔,非常簡單,兩行命令而已,然后我們可以在daocloud后臺添加我們的主機了。
然后我們?nèi)?chuàng)建一個項目
需要我們設(shè)置代碼源,可以選擇github和coding,確實比較人性化,那么我們就需要自己去github創(chuàng)建好git項目了,這里省略過,選擇好后就可以創(chuàng)建了。
項目創(chuàng)建成功后我們只需要選擇我們的代碼分支構(gòu)建一下就好了,這時容器鏡像就創(chuàng)建好了,下來就是部署。
創(chuàng)建一個應(yīng)用,會提示我們選擇鏡像來源,這里選擇之前構(gòu)建的鏡像
點擊部署最新版本就好了
然后我們分別在項目設(shè)置和應(yīng)用設(shè)置里配置自動構(gòu)建和自動部署,這樣以后我們只要提交了代碼,daocloud會幫我們自動構(gòu)建鏡像然后部署,不需要我們自己手動操作,只需要專注代碼邏輯,不用再操心部署了。
過程就是這么簡單,騰訊云服務(wù)器作為基礎(chǔ),我們?nèi)滩挥檬謩优渲米约旱姆?wù)器,多么輕松愜意。
程序?qū)崿F(xiàn)
前面重點講了服務(wù)器配置和程序部署,但是實際上部署的程序我們還沒講。
容器打包必須要有一個Dockerfile來告訴容器如何構(gòu)建鏡像,為了構(gòu)建方便我們采用的daocloud提供的python鏡像,以下是dockerfile的內(nèi)容:
FROM daocloud.io/python:3-onbuild
ENTRYPOINT ["python"]
CMD ["run.py"]
可以看到,我們啟動服務(wù)的文件是run.py
run.py
!/usr/bin/env python3import bot.xiaoweiwei as wechat
def main():
wechat.run()
if name == "__main__":
main() xiaoweiwei.py
import itchat from target.youku import YoukuData from target.qqvideo import QQVideoData from plugins.tuling import get_response @itchat.msg_register("Text") def text_reply(msg): itchat.send("/摳鼻",msg["FromUserName"]) return u"你好,請在群聊里面撩我/微笑" @itchat.msg_register("Text", isGroupChat=True) def group_reply(msg): if msg["isAt"]: if u"播放量" in msg["Text"]: data = YoukuData() if not data.check: return "查詢失??!" num = data.get_play_num() itchat.send(u"優(yōu)酷目前累計播放量為:%s" % num, msg["FromUserName"]) data = QQVideoData() if not data.check: return "查詢失??!" num = data.get_play_num() return u"騰訊視頻目前累計播放量為:%s" % num elif u"訂閱" in msg["Text"]: data = YoukuData() if not data.check: return "查詢失?。? num = data.get_sub_num() return "目前優(yōu)酷訂閱人數(shù)為:%s" % num elif "詳細播放" in msg["Text"]: itchat.send("查詢中...", msg["FromUserName"]) data = YoukuData() if not data.check: return "查詢失敗!" d = data.get_play_num_more() itchat.send(d, msg["FromUserName"]) data = QQVideoData() if not data.check: return "查詢失敗!" d = data.get_play_num_more() return d else: return get_response(msg["Text"][5:]) def run(): itchat.auto_login(True,enableCmdQR=2) itchat.run() >youku.py
import util
homepage = "http://i.youku.com/i/UMzg0ODQ..."
class YoukuData(object):
def __init__(self,url=homepage): self.ulr = url self.check = True self.soup = util.get_soup(url) if self.soup is None: self.check = False #獲得播放量 def get_play_num(self): vnum = self.soup.select(".vnum") if vnum is not None: x = vnum[0] n = x.get("title") num = n else: num = "**找不到播放量**" return num #獲得訂閱數(shù) def get_sub_num(self): snum = self.soup.select(".snum") if snum is not None: x = snum[0] n = x.get("title") num = n else: num = "**找不到訂閱數(shù)**" return num #詳細播放量 def get_play_num_more(self): titles = self.soup.select(".v-meta-title") nums = self.soup.select(".v-num") times = self.soup.select(".v-publishtime") s = " 優(yōu)酷視頻-最新%d個視頻: " % len(titles) for x in range(len(titles)): s += str(x+1) + "."+titles[x].string+" 播放量:"+nums[x].string+" " return s
這里程序?qū)崿F(xiàn)很簡單,使用的是itchat提供的方法,具體可以參考itchat項目https://github.com/littlecode...
總結(jié)
以上就是快速實現(xiàn)微信機器人的思路,其實主要想表達的就是現(xiàn)在的云技術(shù)對于開發(fā)者、對于編程初學(xué)者都是非常友好的,我們完全不必要投入過多精力在運維和發(fā)布維護上,只需要專注代碼就可以。這也是云為我們生活帶來的另一個方面的改變吧。
文章出自騰訊云技術(shù)社區(qū)
(埋文字鏈 https://www.qcloud.com/commun...)
推薦大家關(guān)注騰訊云技術(shù)社區(qū)微信公眾號:QcloudCommunity
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/39490.html
摘要:過程就是這么簡單,騰訊云服務(wù)器作為基礎(chǔ),我們?nèi)滩挥檬謩优渲米约旱姆?wù)器,多么輕松愜意。 推薦理由: 之前我對搭建微信機器人挺感興趣的,心血來潮就做了一個圖靈機器人,感覺自己長見識了,今天無意間發(fā)現(xiàn)了這篇文章,才發(fā)現(xiàn)自己已經(jīng)out了,原來還有這么叼的微信機器人,可以在微信與我們聊天的機器人,它完全不同于圖靈機器人那種API完成一些看似很好玩的聊天功能,真正可以為我們所用;所以小編這次特...
閱讀 1262·2023-04-26 02:38
閱讀 946·2023-04-25 20:13
閱讀 3600·2021-11-19 11:31
閱讀 2405·2019-08-30 15:55
閱讀 2732·2019-08-30 14:11
閱讀 3173·2019-08-30 13:45
閱讀 1385·2019-08-29 18:41
閱讀 1158·2019-08-29 16:18