一、概述
本案例中用企业微信,添加机器人的方式,来达到消息推送的目的。例子中还读取了腾讯云账号的账户余额,并通过调用机器人Webhook url (http post 请求),实现定时提醒。
这里的定时提醒使用了腾讯云函数触发器,也可以通过 linux 自带的 crontab 工具实现定时触发。
二、实现过程
2.1 创建企业微信机器人
企业微信左侧聊天列表,选中需要创建机器人的群,右键添加机器人,并查看机器人的 webook url。
2.2 编写调用机器人 webhook 的脚本。
创建云函数,编写 python 代码。(或者本地编写,不使用云函数也可)
云函数 python 代码:
代码语言:python代码运行次数:7复制# 首次使用,需安装requests、tencentcloud-sdk-python 依赖包
# pip3 install requests
# pip3 install tencentcloud-sdk-python
import json
import requests as requests
# 消息提醒
def main_handler(event, context):
print("调用提醒函数")
webhook = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxxxxxxxx'
# 拼接待发送的内容 content
mount = get_billing()
threshold_value = 1000
content = None
if mount < threshold_value:
content = f'账号余额为:{mount} 元,小于 {threshold_value} 元,请及时充值。'
else:
content = f'账号余额为:{mount} 元。'
# 发送提醒
requests.post(url=webhook, json={"msgtype": "text", "text": {"content": content}},
headers={'Content-Type': 'application/json'})
return ("Hello World")
# 获取腾讯云账号余额,只做提醒的话不需要此部分
def get_billing():
import json
from tencentcloud.common import credential
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
from tencentcloud.billing.v20180709 import billing_client, models
try:
# 你的账号的 secretID 和secretKey
cred = credential.Credential("你账号的secretID", "你账号的secretKey")
httpProfile = HttpProfile()
httpProfile.endpoint = "billing.tencentcloudapi.com"
clientProfile = ClientProfile()
clientProfile.httpProfile = httpProfile
client = billing_client.BillingClient(cred, "", clientProfile)
req = models.DescribeAccountBalanceRequest()
params = {}
req.from_json_string(json.dumps(params))
# DescribeAccountBalance: 获取账号余额的API
resp = client.DescribeAccountBalance(req)
print(resp.to_json_string())
# 获取账户余额
mount = resp.Balance * 0.01
except TencentCloudSDKException as err:
print(err)
return mount
2.3 添加定时调度。
方式一:使用云函数,可直接添加触发器,添加 cron 表达式,启动即可。
方式二:使用 linux crontab工具,添加定时任务。网上例子比较多,这里不在赘述。
三、查看效果
参考阅读:
[1] 腾讯云函数实现定时触发:https://cloud.tencent.com/document/product/583/37509
[2] 企业微信机器人配置说明:https://open.work.weixin.qq.com/api/doc/90000/90136/91770