当前位置: 首页 > Linux

零基础微信机器人实践-云技术对个人开发者的影响

时间:2023-04-06 05:47:51 Linux

推荐理由:之前对搭建微信机器人很感兴趣,一时兴起做了一个图灵机器人。我觉得我学到了很多东西。今天无意中发现,看完这篇文章,我才知道我已经out了。原来有这样一个微信机器人,可以和我们微信聊天。它与完成一些看似好玩的聊天功能的图灵机器人API完全不同。它真的可以被我们使用;所以小编这次特意推荐给大家,帮助大家更好的了解如何使用腾讯云快速实现微信机器人的思路。前言我是一名产品经理。我通常对技术感兴趣。正是因为我对技术有很好的了解,所以我的工作变得非常轻松。我已经阅读了很多技术文章。我觉得技术文章要么是为纯技术写的。是的,或者是给那些编程基础不深但是热爱编程或者有期待的人。这篇文章是为后者写的,但不代表内容很基础,还是用了现在流行的技术。这次我们要做一个微信机器人,就是一个可以和我们微信聊天的机器人。当然,目的不是像图灵机器人那样用API来完成一些看似好玩的聊天功能,而是让这个机器人有用。所以说说我的需求吧。我和朋友做了一个飞机模型的自媒体视频。作为产品经理,我需要知道我发布的视频的实时播放量,但是要完成这个操作,我需要去优酷首页查看,包括打开网页看,很不方便每个视频的播放数据。比如我们在群里聊播放量,机器人会告诉我们播放了多少视频。多方便啊,看得出来还是很矫情的,实现起来真的不难。前提是我们已经站在了巨人的肩膀上。技术路径和实现思路首先,编程语言使用Python。Python具有简洁的语法和丰富的第三方扩展。也是因为这里使用的微信消息框架itchat是基于Python的。服务器当然是用腾讯云服务器。这里我用的是单核1G内存的最低配置,因为这个配置个人用绰绰有余,以后用的多了可以直接升级服务器配置和存储。这是云服务器。巨大的优势。因为对于大多数人来说,弄一个全新的服务器来部署服务是很麻烦的,所以我也不喜欢,所以我想到了使用docker容器来运行我的代码,这样我就不用手动配置服务器运行环境,我只需要创建一个docker镜像,但是感觉还是很麻烦,还要安装docker和上传镜像。然后我发现了daocloud,它可以帮助我进行容器管理和镜像生成。所以我们的部署路径是这样的:编写代码->提交代码到github->daocloud自动生成docker镜像部署到我们的云服务器->自动运行就是把代码提交到分支,然后自动更新release,这样服务就成功运行了。具体过程是这样的,对于云服务器的配置,我只需要为它安装daocloud受控端程序,就可以不用再管这个服务器了。太爽了~刚刚好发现腾讯云也支持daocloud系统。云服务器安装系统时,选择服务市场-Docker容器-Daocloud混合容器管理平台。哇,那岂不是比这更刺激,不用登录服务器做任何配置~直接拿出来用,真是刺激。安装过程就不多说了,他们也提供了文档,很简单,两行命令就可以了,然后我们就可以在daocloud后台添加我们的主机了。那么我们在创建项目的时候,需要设置代码源。你可以选择github和coding。它确实更加人性化。然后我们需要去github上创建一个git项目。此处省略,选择后即可创建。项目创建成功后,我们只需要选择我们的代码分支并构建即可。这个时候容器镜像就创建好了,接下来就是部署了。在创建应用时,会提示我们选择图片来源。这里选择之前构建好的镜像,点击部署最新版本。然后我们在项目设置和应用设置中配置自动构建和自动部署,这样以后我们只需要提交代码,daocloud就会帮我们自动构建镜像然后部署。我们不需要自己手动操作。我们只需要关注代码逻辑,不用再为部署发愁。过程就这么简单,以腾讯云服务器为基础,我们不需要自己手动配置服务器,轻松自在。在程序实现中,我们主要关注服务器配置和程序部署,还没有谈到具体的部署程序。容器打包必须有一个Dockerfile来告诉容器如何构建镜像。为了方便构建daocloud提供的python镜像,dockerfile的内容如下:FROMdaocloud.io/python:3-onbuildENTRYPOINT["python"]CMD["run.py"]可以看到我们启动服务的文件是run.pyrun.py!/usr/bin/envpython3importbot.xiaoweiweiaswechatdefmain():wechat.run()ifname=="__main__":main()xiaoweiwei.pyimportitchatfromtarget.youkuimportYoukuDatafromtarget.qqvideoimportQQVideoDatafromplugins.tulingimportget_response@itchat.msg_register('Text')deftext_reply(msg):itchat.send('/钟鼻',msg['FromUserName'])returnu'Hello,请在群聊中逗我/笑我'@itchat.msg_register('Text',isGroupChat=True)defgroup_reply(msg):ifmsg['isAt']:ifu'playbackvolume'inmsg['Text']:data=YoukuData()ifnotdata.check:return'查询失败!'num=data.get_play_num()itchat.send(u'优酷当前累计播放量为:%s'%num,msg['FromUserName'])data=QQVideoData()ifnotdata.check:return'查询失败!'num=data.get_play_num()returnu'腾讯视频当前累计播放量为:%s'%numelifu'Subscribe'inmsg['Text']:data=YoukuData()ifnotdata.check:return'查询失败!'num=data.get_sub_num()return'当前优酷订阅人数为:%s'%numelif'详细播放'inmsg['Text']:itchat.send('查询中...',msg['FromUserName'])data=优酷数据()ifnotdata.check:return'查询失败!'d=data.get_play_num_more()itchat.send(d,msg['FromUserName'])data=QQVideoData()ifnotdata.check:return'查询失败!'d=data.get_play_num_more()returndelse:returnget_response(msg['Text'][5:])defrun():itchat.auto_login(True,enableCmdQR=2)itchat.run()>youku.pyimportutilhomepage='http://i.youku.com/i/UMzg0ODQ...'classYoukuData(object):def__init__(self,url=homepage):self.ulr=urlself.check=Trueself.soup=util.get_soup(url)ifself.soupisNone:self.check=False#Getplaybackvolumedefget_play_num(self):vnum=self.soup.select('.vnum')ifvnumisnotNone:x=vnum[0]n=x.get('title')num=nelse:num='**Couldnotfindplaybackvolume**'returnnum#Getthenumberofsubscriptionsdefget_sub_num(self):snum=self.soup.选择('.snum')如果snum不是None:x=snum[0]n=x.get('title')num=nelse:num='**无法找到订阅数**'returnnum#详细播放量defget_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个视频:\n'%len(titles)forxinrange(len(titles)):s+=str(x+1)+'.'+titles[x].string+'\n播放音量:'+nums[x].string+'\n'returns这里程序的实现很简单,使用itchat提供的方法。具体可以参考itchat项目https://github.com/littlecode...综上所述,以上就是快速实现一个微信机器人的思路。其实我主要想表达的是现在的云技术对于开发者和编程初学者来说是非常友好的。我们不需要在运维和发布维护上投入太多的精力。我们只需要关注代码。让我们改变生活的另一个方面。文章来自腾讯云技术社区(埋文链接https://www.qcloud.com/commun...)推荐大家关注腾讯云技术社区微信公众号:QcloudCommunity