通过定时触发器,可以简单快速地定制一个企业微信机器人。我们可以用它来实现喝水、吃饭提醒等小功能,还能实现定时推送新闻、天气,甚至是监控告警的小功能。
使用企业微信机器人
在企业微信中,选择添加机器人:
之后,我们可以根据文档进行企业微信机器人的基础功能定制:
以下是用 curl 工具往群组推送文本消息的示例(注意要将 url 替换成机器人的 webhook 地址,content 必须是 utf8 编码):
curl '企业微信机器人地址' \
-H 'Content-Type: application/json' \
-d '
{
"msgtype": "text",
"text": {
"content": "hello world"
}
}'
通过 Python 语言实现:
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
文件如下:
import os
import json
import urllib.request
def 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
文件如下:
MyRobot_Base:
component: '@serverless/tencent-scf'
inputs:
name: MyRobot_Base
runtime: Python3.6
timeout: 3
codeUri: ./base_robot
description: 机器人推送接口
region: ap-guangzhou
environment:
variables:
url: webhook地址
handler: index.main_handler
memorySize: 64
tags:
app: myrobot
events:
- apigw:
name: MyRobot
parameters:
protocols:
- http
- https
description: 机器人推送接口
environment: release
endpoints:
- path: /push
method: ANY
部署成功之后,可以看到命令行中输出的地址:
在浏览器中打开,可以看到企业微信机器人已经被触发了:
以上就是一个简单的 hello world
功能。接下来,好戏开始!
我们对这个基础函数进行进一步的改造: