摘要:過程就是這么簡單,騰訊云服務器作為基礎,我們全程不用手動配置自己的服務器,多么輕松愜意。
推薦理由:
之前我對搭建微信機器人挺感興趣的,心血來潮就做了一個圖靈機器人,感覺自己長見識了,今天無意間發現了這篇文章,才發現自己已經out了,原來還有這么叼的微信機器人,可以在微信與我們聊天的機器人,它完全不同于圖靈機器人那種API完成一些看似很好玩的聊天功能,真正可以為我們所用;所以小編這次特意給大家推薦下,來幫助大家更好地認識如何借助騰訊云快速實現微信機器人的思路。
前言
我是一名產品經理,平時對技術比較感興趣,也正是因為對技術有所了解也讓我的工作非常輕松,平時也看過很多技術文章,我認為技術文章要么就是給純技術寫的,要么就是給那些沒有很深的編程基礎但是熱愛編程或者抱有期待的人看的,這篇文章是寫給后者的,但是不代表內容非常基礎,依然使用了目前比較熱門的技術。
這次我們要做一個微信機器人,就是可以在微信與我們聊天的機器人,當然目的不是用圖靈機器人那種API完成一些看似很好玩的聊天功能,好歹要讓這個機器人有所作用。
那么來說說我的需求吧,我和朋友做了一個航模視頻的自媒體,作為一個產品經理,我需要了解我發布的視頻的實時播放量,但是完成這個操作需要進入優酷主頁查看,包括還有每個視頻的播放量數據都要自己去打開網頁看,這樣非常不方便,比如我們在群里聊到了播放量的話,那么就會有一個機器人告訴我們播放了多少,這樣多么方便,而且看起來還很裝逼,并且,想實現出來真的不難。
前提是我們已經站在巨人的肩膀上。
技術路徑和實現思路
首先編程語言使用了Python,Python語法簡潔、第三方擴展豐富,也因為這里采用的微信消息框架itchat是基于Python的。
服務器當然使用騰訊云服務器,這里我使用的是單核1G內存的最低配置,因為作為個人用的這個配置綽綽有余了,并且以后有更多用途的時候可以直接升級服務器配置和存儲,這就是云服務器的巨大優勢。
因為對于大部分人來說,拿到一臺嶄新的服務器要部署服務是非常麻煩的,所以我也不喜歡,于是乎想到了使用docker容器來運行我的代碼,這樣不用手動去配置服務器的運行環境,我只需要創建一個docker鏡像就可以了,但是這樣感覺還是挺麻煩的,還要安裝docker,還要上傳鏡像。然后我發現了daocloud,它可以幫助我完成容器管理和鏡像生成的工作。
所以我們部署路徑是這樣的:
編寫代碼->提交代碼到github上->daocloud自動生成docker鏡像并部署到我們的云服務器上->自動運行
也就是提交代碼到分支,然后,然后自動更新發布,服務就這么運行成功了
具體過程
所以對云服務器的配置而言,我只需要為其安裝daocloud的被控端程序即可,然后就可以再也不用管這臺服務器了,太爽了吧~
恰好發現騰訊云也支持了daocloud的系統,在為云服務器安裝系統的時候選擇服務市場-Docker容器-Daocloud混合式容器管理平臺即可。
哇,那這樣豈不是爽上加爽,不用登錄服務器做任何配置~拿來即用,真刺激。
安裝過程就不多說了,他們也提供了文檔,非常簡單,兩行命令而已,然后我們可以在daocloud后臺添加我們的主機了。
然后我們去創建一個項目
需要我們設置代碼源,可以選擇github和coding,確實比較人性化,那么我們就需要自己去github創建好git項目了,這里省略過,選擇好后就可以創建了。
項目創建成功后我們只需要選擇我們的代碼分支構建一下就好了,這時容器鏡像就創建好了,下來就是部署。
創建一個應用,會提示我們選擇鏡像來源,這里選擇之前構建的鏡像
點擊部署最新版本就好了
然后我們分別在項目設置和應用設置里配置自動構建和自動部署,這樣以后我們只要提交了代碼,daocloud會幫我們自動構建鏡像然后部署,不需要我們自己手動操作,只需要專注代碼邏輯,不用再操心部署了。
過程就是這么簡單,騰訊云服務器作為基礎,我們全程不用手動配置自己的服務器,多么輕松愜意。
程序實現
前面重點講了服務器配置和程序部署,但是實際上部署的程序我們還沒講。
容器打包必須要有一個Dockerfile來告訴容器如何構建鏡像,為了構建方便我們采用的daocloud提供的python鏡像,以下是dockerfile的內容:
FROM daocloud.io/python:3-onbuild
ENTRYPOINT ["python"]
CMD ["run.py"]
可以看到,我們啟動服務的文件是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"優酷目前累計播放量為:%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 "目前優酷訂閱人數為:%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 #獲得訂閱數 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 = "**找不到訂閱數**" 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 = " 優酷視頻-最新%d個視頻: " % len(titles) for x in range(len(titles)): s += str(x+1) + "."+titles[x].string+" 播放量:"+nums[x].string+" " return s
這里程序實現很簡單,使用的是itchat提供的方法,具體可以參考itchat項目https://github.com/littlecode...
總結
以上就是快速實現微信機器人的思路,其實主要想表達的就是現在的云技術對于開發者、對于編程初學者都是非常友好的,我們完全不必要投入過多精力在運維和發布維護上,只需要專注代碼就可以。這也是云為我們生活帶來的另一個方面的改變吧。
文章出自騰訊云技術社區
(埋文字鏈 https://www.qcloud.com/commun...)
推薦大家關注騰訊云技術社區微信公眾號:QcloudCommunity
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/39490.html
摘要:過程就是這么簡單,騰訊云服務器作為基礎,我們全程不用手動配置自己的服務器,多么輕松愜意。 推薦理由: 之前我對搭建微信機器人挺感興趣的,心血來潮就做了一個圖靈機器人,感覺自己長見識了,今天無意間發現了這篇文章,才發現自己已經out了,原來還有這么叼的微信機器人,可以在微信與我們聊天的機器人,它完全不同于圖靈機器人那種API完成一些看似很好玩的聊天功能,真正可以為我們所用;所以小編這次特...
閱讀 1249·2023-04-26 02:38
閱讀 928·2023-04-25 20:13
閱讀 3589·2021-11-19 11:31
閱讀 2396·2019-08-30 15:55
閱讀 2717·2019-08-30 14:11
閱讀 3157·2019-08-30 13:45
閱讀 1371·2019-08-29 18:41
閱讀 1147·2019-08-29 16:18