吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 9653|回复: 59
收起左侧

[Python 转载] 微信公众号消息推送(内含天气预报API接口)

   关闭 [复制链接]
小阿狸呀 发表于 2022-8-22 17:49
本帖最后由 小阿狸呀 于 2022-8-23 12:02 编辑

大家好我是小阿狸最近刷视频看到很多那种微信公众号推送的,我也去尝试写了一下
今天给大家分享一下教程

首先是打开https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login,打开这个链接去扫码登录,登录之后会给你 1O]T[3JT9NM}NT(838)5`{C.png
上面这两个,待会需要用

然后滑到下面,找到个二维码,扫码
46GBJD93V)D]BB@NJE3GVDD.png
扫码之后会给右边的微信号,这里这个数据也要用到
找到下面新增模板
WT4MHDI$$QE]4D4~ODGL1}V.png
标题自己定,对应如图所示,模板具体内容在下面
KJC$[`UC}2Y6Z%@P40)SH[8.png

[XHTML] 纯文本查看 复制代码
{{date2.DATA}}
{{demo.DATA}}

{{date.DATA}}
城市:{{city.DATA}}
天气:{{weather.DATA}}
最低气温:{{tempn.DATA}}
最高气温:{{temp.DATA}}
您已经在地球上存活了:{{live.DATA}}天

{{wd.DATA}}
{{english.DATA}}


上面这些配置好之后接下来就要把刚刚的数据都放入python中了
这里需要提前pip install requests这个库

只需要把这八行数据配置好就行了
[Python] 纯文本查看 复制代码
appid='wx065c2sjdhrujerd9'
secret='9490534587fc48c8470fkswie8j2bcdd'
touser=['onOKZ5vas9nGcnqz1_NWJIjwjeml','onOKZ5g_yY2e2uZQ45nsAksjeAje']#微信用户id
template_id='gTBAfrI2gDO_vwqQa7VD214kITkP_F-0SkZ-Swijwek'#模板id
city_id='101191301'#城市天气id
birthday = "2003-04-10"
info="单身狗也要对自己好一点~"#底部信息
e='Single people should be kind to themselves'#底部信息


[Python] 纯文本查看 复制代码
import requests
import json
import time
import datetime

if __name__ =="__main__":
    appid='wx065c2sjdhrujerd9'
    secret='9490534587fc48c8470fkswie8j2bcdd'
    touser=['onOKZ5vas9nGcnqz1_NWJIjwjeml','onOKZ5g_yY2e2uZQ45nsAksjeAje']#微信用户id
    template_id='gTBAfrI2gDO_vwqQa7VD214kITkP_F-0SkZ-Swijwek'#模板id
    city_id='101191301'#城市天气id
    birthday = "2003-04-10"
    info="单身狗也要对自己好一点~"#底部信息
    e='Single people should be kind to themselves'#底部信息


    grant_type = 'client_credential'
    url=f'https://api.weixin.qq.com/cgi-bin/token?grant_type={grant_type}&appid={appid}&secret={secret}'
    response=requests.get(url).json()
    access_token=''
    if response['expires_in']==7200:
        # 获取token
        access_token=response['access_token']
        #天气获取
        headers = {
            'Referer': 'http://www.weather.com.cn/',
            'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
        }
        url = f'http://d1.weather.com.cn/weather_index/{city_id}.html?_=' + str(int(round(time.time() * 1000)))
        #日期计算
        r = requests.get(url, headers=headers)
        r.encoding = "utf8"
        res = eval(r.text.split(";")[0].split("=")[-1])
        time=res['weatherinfo']['fctime']
        year=time[0:4]
        month=time[4:6]
        day=time[6:8]
        week_list = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"]
        week=week_list[datetime.date(int(year),int(month),int(day)).weekday()]
        date = f'{year}年{month}月{day}日  {week}'
        date2 = f'{int(month)}月{day}日'

        # 你活了多久
        birthday_date = datetime.datetime.strptime(birthday, "%Y-%m-%d")
        curr_datetime = datetime.datetime.now()
        minus_datetime = curr_datetime - birthday_date
        #发送消息
        sendMessage_url=f"https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={access_token}"
        for user in touser:
            data={
               "touser":user,
               "template_id":template_id,
               "appid":appid,
               "data":{
                   "demo": {
                       "value": "测试语句",
                       "color": "#AAFF00"
                   },
                   "live": {
                       "value": minus_datetime.days,
                       "color": "#00FF00"
                   },
                   "date2": {
                       "value": date2,
                       "color": "#6B6A66"
                   },
                   "date": {
                       "value": date,
                       "color": "#CAA06A"
                   },
                    "city":{
                        "value":res['weatherinfo']['city'],
                        "color": "#00FF00"
                    },
                   "weather":{
                       "value":res['weatherinfo']['weather'],
                       "color": "#F9AD08"
                   },
                    "tempn":{
                        "value":res['weatherinfo']['tempn'],
                        "color": "#9DB981"
                    },
                   "temp":{
                        "value":res['weatherinfo']['temp'],
                        "color":"#CAA06A"
                    },
                   "wd":{
                        "value":info,
                        "color":"#92CAD9"
                    },
                   'english':{
                       "value":e,
                       "color":"#FF0000"
                   }

               }
           }

            getTemp=requests.post(sendMessage_url,data=json.dumps(data)).json()
    else:
        print("appid或secret错误")



最后放一张效果图吧
KG(EG}KR@UA$H1}QZ~O0J`X.png


好了就分享到这里了,觉的有用的可以支持一下

放个城市id的文件吧
各城市天气代码.txt (182.92 KB, 下载次数: 294)

免费评分

参与人数 8吾爱币 +4 热心值 +7 收起 理由
seatop + 1 + 1 谢谢@Thanks!
mudou7xiu + 1 热心回复!
mdzzlq + 1 用心讨论,共获提升!
#sky# + 1 + 1 我很赞同!
jiekeL + 1 + 1 谢谢@Thanks!
无愧魅影 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
LanTianA + 1 用心讨论,共获提升!
scenla + 1 热心回复!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

a87946001 发表于 2022-8-23 11:54

https://blog.csdn.net/nvisalsd/article/details/107811902
去这个博客看你所在的城市id
xlinux 发表于 2022-8-22 23:06
lsmh 发表于 2022-8-22 20:58
shifoucunzai 发表于 2022-8-22 21:12
关键是咱没有公众号
小刘小刘 发表于 2022-8-22 21:17
城市id怎么查
tlpking 发表于 2022-8-22 21:29
这个推送程序很好
lansemeiying 发表于 2022-8-22 21:42
最好搞个视频的哈哈
LanTianA 发表于 2022-8-22 21:45
希望出视频
umbrella_red 发表于 2022-8-22 21:50
不错不错,研究研究
gblw 发表于 2022-8-23 09:17
只能用测试公众号嘛! 有没有正式公众号的操作方法!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 14:41

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表