跨境物流火爆,运无界完成数千万元战略融资
06-18
通过定时触发,您可以非常简单、快速地构建企业微信机器人。我们可以用它来实现喝水、吃饭提醒等小功能,也可以实现定时推送新闻、天气,甚至监控闹钟等小功能。
使用企业微信机器人 在企业微信中,可以选择添加机器人: 添加机器人后,我们可以根据文档自定义企业微信机器人的基本功能: 下面是使用curl工具推送文本的示例群发消息(注意url必须替换成你的机器人webhook地址,内容必须是utf8编码): 代码语言:javascript copy curl '企业微信机器人地址' \ -H 'Content-Type: application/json' \ -d ' { "msgtype": "text" , "text": { "content": "hello world" } }' 通过Python语言实现:代码语言:javascript copy url = ""data = { "msgtype": " markdown", "markdown": { "content" : "hello world", }}data = json.dumps(data).encode("utf-8")req_attr = urllib.request.Request(url, data)resp_attr = urllib.request.urlopen(req_attr)return_msg = resp_attr .read().decode("utf-8") 至此,我们就可以通过Serverless Framework部署机器人的基本功能,并设置API网关触发器:index. py 文件:代码语言:javascript copy import osimport jsonimport urllib .requestdef main_handler(event, context): url = os.environ.get("url") data = { "msgtype": "markdown", "markdown": { "content": "hello world", } } data = json.dumps(data).encode("utf-8") req_attr = urllib.request.Request(url, data) resp_attr = urllib.request.urlopen(req_attr) return resp_attr.read().decode("utf-8")serverless.yaml 文件:代码语言:javascript 复制 MyRobot_Base: 组件: '@serverless/tencent-scf' 输入: name: MyRobot_Base 运行时: Python3.6 timeout: 3 codeUri: ./base_robot 描述: 机器人推送接口 区域: ap-guangzhou 环境: 变量: url: webhook 地址 handler: index.main_handler内存大小:64 标签:应用程序:myrobot 事件:- apigw:名称:MyRobot 参数:协议:- http - https 描述:机器人推送界面 环境:release endpoints: - path: /push method: ANY 部署成功后,可以看到系统给我们的地址: 我们通过浏览器打开这个地址,可以看到我们的企业微信机器人被触发了: 此时,我们已经完成了一个简单的 hello world 函数,接下来,我们对这个基本函数进行额外的修改: 代码语言: javascript copy import osimport jsonimport urllib.requestdef main_handler(event, context): url = os.environ.get("url") data = { "msgtype": "markdown", "markdown": { "content": event['body'], } } data = json.dumps(data).encode("utf-8") req_attr = urllib. request.Request(url, data) resp_attr = urllib.request.urlopen(req_attr) return resp_attr.read().decode("utf-8") 其他模块请求可以通过将data中的content字段改为event['来实现body'] 该接口实现机器人推送功能。当然,我们还可以完善这个基本功能。
例如,不仅仅是Markdown格式,还封装了更多支持的格式:机器人功能扩展了提醒喝水/吃饭功能以及通过定时触发访问云功能。这个功能可以实现,例如index.py代码:代码语言:javascript copy import osimport jsonimport urllib.requestdef main_handler(event, context): url = os.environ.get("url") data = "每天多喝水,别忘了补充水分".encode("utf-8") req_attr = urllib.request.Request(url, data) resp_attr = urllib.request.urlopen(req_attr ) return resp_attr.read().decode("utf-8")serverless.yaml 文件: 代码语言: javascript 复制 MyRobot_Water: 组件: '@serverless/tencent-scf' 输入: 名称: MyRobot_Water 运行时: Python3.6 超时: 3 codeUri: ./water 描述: 提醒机器人喝水 区域: ap-guangzhou 环境: 变量: url: handler: index.main_handler memorySize: 64 标签: app: myrobot events: - 定时器: 名称: 定时器参数: cronExpression: '0 */30 9-17 * * * *'enable: true 这个功能每天早上9点到下午5点每隔30分钟提醒我们喝水一次天气预报/本地新闻功能如果我们想实现天气预报/新闻播报功能,可以通过现有的新闻接口来实现。
以腾讯云的云市场为例,我们正在寻找一个新闻API接口: 根据API文档,可以看到请求地址为: 该方法可以携带一个参数:keyword,作为目标关键词,代码编写:代码语言: javascript copy import ssl, hmac, base64, hashlib, os, jsonfrom datetime import datetime as pydatetimefrom urllib.parse import urlencodefrom urllib.request import Request, urlopendef main_handler(event, context): source = "market" datetime = pydatetime. utcnow().strftime('%a, %d %b %Y %H:%M:%S GMT') signStr = "x-日期: %s\nx-源: %s" % (日期时间, 源)符号= base64.b64encode(hmac.new(os.environ.get('secretKey').encode('utf-8'),signStr.encode('utf-8'),hashlib.sha1).digest()) auth = 'hmac id="%s", Algorithm="hmac-sha1", headers="x-date x- source", 签名="%s"' % (os.environ.get("secretId"), sign.decode('utf-8')) headers = { 'X-Source': 源, '; + urlencode(queryParams) content = "" for eve in json.loads(urlopen(Request(url, headers=headers)).read().decode("utf-8"))["结果"]["列表" ][0:5]: 内容 = 内容 + "* [%s](%s) \n"%(eve['title'], eve['url']) if content: urlopen(Request(os.environ) .get('url'), content.encode("utf-8")))serverless.yaml 文件:代码语言:javascript 复制 MyRobot_News: 组件:'@serverless/tencent-scf' 输入:名称:MyRobot_News 运行时:Python3 .6 超时时间: 3 codeUri: ./news 描述: 新闻推送 区域: ap-广州 环境: 变量: url: SecretId: 云市场关键信息 SecretKey: 云市场关键信息 handler: index.main_handler memorySize: 64 Tags: app: myrobot events: - timer: name: 定时器参数: cronExpression: '0 0 */8 * * * *' enable: true 运行效果是8点钟给我们推送当天的科技新闻每日早报:点击新闻即可进入相应的新闻页面。监控报警功能企业微信机器人除了被赋予上述能力外,还可以被赋予监控报警的能力:index.py文件:代码语言:javascript copy import osimport urllib.requestdef getStatusCode(url): return urllib。
request.urlopen (url).getcode()def main_handler(event, context): url = " if getStatusCode(url) == : print("您的网站 %s 可以访问!" % (url)) else: urllib. request.urlopen (urllib.request.Request(os.environ.get('url'), ("您的网站 %s 无法访问!" % (url)).encode("utf-8"))) return Noneserverless .yaml 文件: 代码语言: javascript 复制 MyRobot_Monitor: 组件: '@serverless/tencent-scf' 输入: 名称: MyRobot_Monitor 运行时: Python3.6 超时: 3 codeUri: ./monitor 描述: 网站监控区域: ap-guangzhou 环境:变量:url:处理程序:index.main_handler内存大小:64标签:应用程序:myrobot事件:-计时器:名称:计时器参数:cronExpression:'0 * / 30 * * * * *'enable: true 部署完成后,我们的网站监控脚本就已经启动了。它会每 30 分钟检查一次我们的网站是否可用。
如果不可用,则会发出警报:想法不同的企业微信机器人可以通过Serverless架构获得更多更新。有趣的功能,那么我们身边还有哪些产品可以与Serverless架构结合,给我们带来有趣的功能呢?随着网络技术的不断发展,物联网技术已逐渐走进千家万户。
无论是扫地机器人、智能窗帘等智能家居,还是智能音箱等娱乐设施,物联网技术已初见端倪。说一个熟悉的小爱同学词,今天,我们通过Serverless架构快速开发出了自己的小爱同学新功能。
在开始之前,我们需要在小爱同学开放平台上注册一个账号,并提交认证:完成后,我们就开始研究小爱同学的定制功能。如图所示,在开发文档中,我们可以看到小爱开发者平台提供的能力信息。
我们还可以查看请求和响应的详细信息:小爱同学的开发者规范等。有了一定的了解后,我们就可以开始设计项目了。
该版块的目标是通过对小爱同学说出“进入云+社区”关键词,向用户返回腾讯云+社区最新热门文章的标题和介绍。整个流程如图所示: 接下来编写函数代码: 代码语言:javascript copy # -*- 编码:utf8 -*-import jsonimportloggingimport urllib.requestimport urllib.parselogging.basicConfig(level=logging.NOTSET) def main_handler(事件,上下文):主机=“路径=”开发者/服务/ajax/column/article?action=FetchColumnHomeArticleList”json_data={“action”:“FetchColumnHomeArticleList”,“有效负载”:{“pageNumber”:1, “pageSize”:20,“版本”:1 } } data = json.dumps(json_data).encode(“utf-8”) request_attr = urllib.request.Request(url=主机+路径,data=数据) response_attr = urllib. request.urlopen(request_attr).read().decode("utf-8") json_resp = json.loads(response_attr)logging.debug(json_resp) temp_str = "文章标题为%s,主要内容是 %s" list_data = json_resp["data"]["list"][0:5] art_list = [temp_str % (eve["title"], eve["abstract"]) for eve in list_data] news_str = '''今日腾讯云+社区热门文章如下:%s''' % (",". join(art_list ))logging.debug(news_str) xiaoai_response = {"version": "1.0", "response": { "open_mic": False, "to_speak": { "type": 0, "text": news_str } }, " is_session_end": False } return xiaoai_response完成后,通过Serverless Framework进行部署,并绑定API网关触发器。
然后我们通过请求地址就可以看到测试结果:可以看到我们已经获取到了目标数据。此时,我们在小爱同学官网上创建了技能开发。
填写并保存基本信息后,我们选择配置服务,并在配置信息中填写HTTPS中的测试环境地址: 配置完成后,我们进入测试页面,开始测试。如下图所示,可以看到,当我们输入预定的命令“打开云嘉社区”时,系统会正确返回结果信息并返回给我们: 至此,我们已经成功为我们的小型服务器提供了无服务器架构。
爱屯门开发了一个新功能,接下来,如果你想让更多人使用这个新功能,你可以发布、审核、上线。总结 通过Serverless架构,我们可以快速为未来的产品添加一些新的功能,赋予它们新的活力。
这篇文章只是一个介绍。通过企业微信机器人与Serverless架构的结合,几段代码实现了提醒吃饭/喝水的功能、新闻/天气的功能、业务的监控报警功能。
同时,发散思维引导小爱同学和其他设备通过Serverless架构赋予它们新的功能。能力。
Serverless框架30天试用计划诚挚邀请您体验最便捷的Serverless开发和部署方式。试用期间,相关产品和服务提供免费资源和专业技术支持,帮助您的企业快速轻松实现Serverless!详情请参见:More Thing3 您可以在几秒钟内做什么?喝一口水,阅读一封电子邮件,还是部署一个完整的无服务器应用程序?复制以下链接到PC浏览器访问:china.serverless.com/express 3秒部署,体验史上最快实用Serverless HTTP开发!传送门:GitHub:github.com/serverless 官网:serverless.com 点击阅读原文,访问Serverless中文网。
版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
标签:
相关文章
06-18
06-18
06-18
06-18
06-18
06-18
06-18
最新文章
【玩转GPU】ControlNet初学者生存指南
【实战】获取小程序中用户的城市信息(附源码)
包雪雪简单介绍Vue.js:开学
Go进阶:使用Gin框架简单实现服务端渲染
线程池介绍及实际案例分享
JMeter 注释 18 - JMeter 常用配置组件介绍
基于Sentry的大数据权限解决方案
【云+社区年度征文集】GPE监控介绍及使用