Serverless实践:企业微信机器人还能这么做吗?

发布于:2024-10-24 编辑:匿名 来源:网络

通过定时触发,您可以非常简单、快速地构建企业微信机器人。我们可以用它来实现喝水、吃饭提醒等小功能,也可以实现定时推送新闻、天气,甚至监控闹钟等小功能。

使用企业微信机器人 在企业微信中,可以选择添加机器人: 添加机器人后,我们可以根据文档自定义企业微信机器人的基本功能: 下面是使用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中文网。

Serverless实践:企业微信机器人还能这么做吗?

站长声明

版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

标签:

相关文章

  • 我们已经找到了新款 MacBook Pro 的所有最值得关注的细节

    我们已经找到了新款 MacBook Pro 的所有最值得关注的细节

    昨晚苹果爆炸性的发布会成为史上最短的一次。 虽然很短,但是信息量却很大。 一开始,多彩版的 HomoPod mini 和 AirPods 3 作为开胃菜登场,而 MacBook Pro 作为大盘,端出了 M1 Pro 和 M1 Max 两盘真正爆款的菜品。 辅以ProMotion和更丰富的界面,昨晚熬夜的食客们表示非常

    06-21

  • 美国要求跨国半导体厂商提供供应链信息,涉及深度!

    美国要求跨国半导体厂商提供供应链信息,涉及深度!

    核心情报、人民日报海外版 9月25日,美国政府以“稳定芯片供应链”为名,要求跨国半导体企业在45天内“自愿”提供相关信息,包括库存、产能、供货周期、客户信息等26项核心数据。 信息收集对象覆盖整个半导体供应链,包括半导体材料和设备供应商、芯片设计和制造公司、分销中

    06-06

  • 中国银行业协会报告:2020年手机银行交易笔数同比增长30.87%

    中国银行业协会报告:2020年手机银行交易笔数同比增长30.87%

    今天,中国银行业协会发布《年中国银行业服务报告》。 据不完全统计,银行业金融机构全年场外交易笔数达7200万笔,同比增长14.59%;场外交易总额达36万亿元,同比增长12.18%;行业平均电子渠道分流率为90.88%。 其中,手机银行交易量达到4600万笔,同比增长58.04%,交易总额达

    06-17

  • 宏景智嘉完成超亿元B+轮融资,合肥产业投资、众安资本、点石资本纷纷行动

    宏景智嘉完成超亿元B+轮融资,合肥产业投资、众安资本、点石资本纷纷行动

    据投资界(ID:pedaily)9月14日消息,中国自动驾驶科技公司宏景智嘉近日宣布完成B+轮融资。 本轮融资总额超亿元。 由合肥产业投资、众安资本、点石资本等机构共同投资。 老股东沙特阿美Property7本轮继续追加投资。 今年5月,宏景智正式宣布完成近5亿元B轮融资。 仅仅四个月

    06-18

  • 康桥医疗健康产业设施平台旗下中国生命科学产业设施基金完成第二轮关账

    康桥医疗健康产业设施平台旗下中国生命科学产业设施基金完成第二轮关账

    投资界(ID:pedaily)消息,康桥医疗健康产业设施平台(以下简称“CBC HIP”) ” )10月19日宣布旗下首支中国生命科学产业设施基金(以下简称“CLSRA Venture I”)成功完成关账第二轮融资,募资总额8.75亿美元。 本次第二轮融资的主要投资方是阿布扎比领先的主权基金穆巴达

    06-17

  • 杭州强化“芯”打造集成电路设计创新之都,出台14条鼓励政策

    杭州强化“芯”打造集成电路设计创新之都,出台14条鼓励政策

    杭州网消息:制造业不能缺“芯”,更不能缺“灵魂”。 杭州出台特殊政策鼓励集成电路(芯片)产业加快发展。 17日,杭州市政府新闻办、市经济和信息化委员会召开新闻发布会,正式发布《杭州市进一步鼓励集成电路产业加快发展的专项政策》(以下简称《专项政策》)。 包括资助

    06-06

  • POC安全会议上的中国声音:360揭露“来自星星的危险”

    POC安全会议上的中国声音:360揭露“来自星星的危险”

    大量在太空行驶的卫星将突然“失去联系”;比特币交易信息可以随意伪造;流行的智能手机存储设备可能使您成为勒索的目标,这已不是什么秘密。 近日,POC安全会议在韩国首尔召开。 来自中国的安全团队首次披露了 Comtech 卫星调制解调器、Blockstream 卫星链路和 Synology NAS

    06-17

  • 3D真人克隆服务商中趣科技完成2400万A轮融资,由华映资本领投,

    3D真人克隆服务商中趣科技完成2400万A轮融资,由华映资本领投,

    据投资界消息,4月17日,中趣科技A轮融资暨新品发布会在北京召开。 中趣科技CEO高翔宣布完成1万元A轮融资。 本轮融资由华映资本领投。 资金主要用于产品研发和市场拓展。 同时发布了新品——“太空猎者N”3D相机及软件服务全面升级。   此前,中趣科技已获得两轮融资:12月

    06-17

  • 知己汽车完成超80亿元B轮股权融资,中银资产领投,

    知己汽车完成超80亿元B轮股权融资,中银资产领投,

    据投资界(ID:pedaily)3月1日消息,知己汽车宣布成功获得超80亿元B轮股权融资,深化公司智能化战略,打造高端智能驾驶、智能座舱、智能控制技术优势,并提供雄厚的资金储备。 智机汽车B轮融资由中国银行旗下中银资管领投,农银投资、临港集团等跟投,宁德时代、Momenta、清

    06-18

  • 宜家在中国卖房子,15000元-平方米,你想买吗?

    宜家在中国卖房子,15000元-平方米,你想买吗?

    许多公司边走边出售房屋、土地和建筑物。 这并不罕见。 HTC、联想、索尼、诺基亚、康佳等不同品牌均已出售其持有的房地产。 但这些销售背后往往有不同的原因。 他们是为了挽救即将断裂的现金流,准备退出或进入房地产投资市场,或者是为了让季度的财务报告变得更好,以便出售

    06-21

  • 智能在线云打印平台“新印像”获1000万元A轮融资

    智能在线云打印平台“新印像”获1000万元A轮融资

    据投资界1月22日消息,智能在线云打印平台“新印像”近日宣布获得1万元A轮融资融资。 本轮融资由筋斗云领投,东湖普金、百溪创投跟投。    据悉,本轮募集资金将主要用于开设线下印刷旗舰店、安装线下交通设备、完善线上运营服务系统、持续开发新功能等。   新印像成立于

    06-17

  • 这些让男人羞愧的事情,终于有人解决了

    这些让男人羞愧的事情,终于有人解决了

    你的头发老是掉光吗?你还年轻,头顶上就是地中海吗?你的肚子是不是越来越大,身体也越来越浮肿?您是否经常小便、尿急或无法完全排尿?你是一个快人吗?重振雄风,你想昂首挺胸,重拾作为一个男人的自尊吗?这些直击男性灵魂深处的广告语你是否无法回避?表面上它们解决了男

    06-21