Crie um lembrete de mensagem gratuito Mecanismo push por meio do WeChat e WeChat corporativo

Eu mesmo já fiz muitos serviços e quero enviá-los para telefones celulares enviando mensagens Push. No entanto, o aplicativo correspondente precisa ser desenvolvido para telefones celulares de diferentes plataformas e o custo é relativamente alto. Então, comecei a procurar um mecanismo de lembrete de mensagem gratuito e de código aberto.

direção:

1. Serviço de push

2. Conta oficial do WeChat

3. Sincronização do calendário

Depois de uma investigação feroz, descobriu-se que:

Os serviços push são basicamente necessários para desenvolver aplicativos correspondentes

Se a conta oficial do WeChat envia mensagens, o número de mensagens que podem ser enviadas todos os dias é limitado ou são usadas mensagens de modelo, o que é relativamente pobre em escalabilidade

A sincronização do calendário é relativamente baixa e o software de sincronização correspondente precisa ser instalado no celular, o que não é universal.

Mais tarde, foi descoberto que o Enterprise WeChat oferece suporte a aplicativos personalizados e abriu o WeChat, então temos uma nova direção:

1. Registre uma empresa

2. Crie um novo aplicativo sob a empresa

3. Use o WeChat para vincular o WeChat corporativo

4. Ative a opção de sincronização de mensagens corporativas do WeChat para o WeChat

5. Conecte seu próprio serviço de lembrete/alarme ao aplicativo no WeChat corporativo

6. Adicione pessoas (família, amigos) que precisam receber informações para membros corporativos

Finalmente alcançar o seguinte efeito

Anexe um pequeno código para lembrete de previsão do tempo:

# -*- coding: utf-8 -*-
# @Time    : 2021/6/21 5:10 下午
# @Author  : SunRuichuan
# @File    : GetWeather.py
import datetime
import json
import requests

appid = '*****'
appsecret = '*****'
weather_url = 'https://tianqiapi.com/api'


def getWeather(city='北京'):
    params = {
        'appid': appid,
        'appsecret': appsecret,
        'version': 'v1',
        'cityid': '',
        'city': city,
        'ip': '',

    }
    return requests.get(url=weather_url, params=params)


def getAccessToken():
    url = '企业微信获取token链接,自己去申请'
    res = requests.get(url).json()
    if res['errcode'] == 0:
        return res['access_token']
    else:
        return None


def sendMsgToAll(content):
    """通过企业微信申请的应用发送内容"""
    access_token = getAccessToken()
    if access_token is None:
        return
    url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + access_token
    data = {
        "touser": '@all',
        "msgtype": "text",
        "agentid": 1000002,
        "text": {
            "content": content
        },
        "safe": 0
    }
    requests.post(url=url, data=json.dumps(data))


def getCarLimit():
    tomorrow = (datetime.date.today() + datetime.timedelta(days=1)).strftime("%Y-%m-%d")
    # print(tomorrow)
    url = 'http://yw.jtgl.beijing.gov.cn/jgjxx/services/getRuleWithWeek'
    result = requests.get(url=url).json()
    for i in result['result']:
        _date = str(i['limitedTime']).replace('年', '-').replace('月', '-').replace('日', '')
        if tomorrow == _date:
            # print(i['limitedNumber'])
            return i['limitedNumber']


if __name__ == '__main__':
    limit = getCarLimit()
    limit_msg = ''
    if limit is not None and limit != '不限行':
        limit_msg = f'明日限行尾号为【{limit}】'

    print(limit_msg)

    weather_res = getWeather().json()
    city_name = weather_res['city']
    update_time = weather_res['update_time']
    weather_data = weather_res['data']
    '''获取明日天气'''
    date = weather_data[1]['date']
    weather = weather_data[1]['wea']
    high_tem = weather_data[1]['tem1']
    low_tme = weather_data[1]['tem2']
    air_level = weather_data[1]['air_level']
    wash_car = '未知'
    for wash in weather_data[1]['index']:
        if wash['title'] == '洗车指数':
            wash_car = wash['level']
    weather_string = f'{date} {city_name}\n天气情况【{weather}】\n最高气温【{high_tem}】\n最低气温【{low_tme}】\n空气质量【{air_level}】\n洗车指数【{wash_car}】'

    print(weather_string)
    msg = weather_string + '\n' + limit_msg
    sendMsgToAll(msg)

Acho que você gosta

Origin blog.csdn.net/u013772433/article/details/122827298
Recomendado
Clasificación