热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

手把手教你使用云产品实现抖音同款微信早安推送(腾讯云Python版本)

大家好,我是小白当我发完上一篇文章后,后台有很多小伙伴私信我说自己没有云服务器,可以实现这个功能吗?答案是肯定的

大家好,我是小白

当我发完上一篇文章后,后台有很多小伙伴私信我说 自己没有云服务器,可以实现这个功能吗?

答案是肯定的!

老规矩,先上效果图!

是不是很赞👍

其实实现这个功能很简单,具体可以参考我的上一篇文章

最近抖音女友早安很火,那我也来跟个风,教程来咯(Python版)

虽然可以实现这个功能,但是大多数同学限制于没有服务器,因此无法继续操作

那么,这篇文章我将解决这个问题,只要有微信、百度或者支付宝或者华为其中一个账号即可

说到这儿,相信部分同学已经知道了要使用什么去实现了,没错,今天我要使用云产品实现上篇文章中的微信推送功能

免费!免费!免费!

在正式开始前,还是希望各位可以先去阅读一下上一篇文章,以免在接下来的描述中出现各种问号

链接:最近抖音女友早安很火,那我也来跟个风,教程来咯(Python版)


获取要使用的代码


代码地址: https://gitee.com/mxbai/say_good_morning

首先,需要将代码从我的Gitee仓库拉取到你本地,有两种办法,如下:

  • 如果你不是一位开发人员,或者电脑上没有 Git 工具,那么你只需要将上述地址中的 say_good_morning.py 文件内容复制粘贴到你本地,也可以按下图方式将该文件下载至你本地电脑

  • 如果你是一名开发同学,那可就很简单了,只需要打开你电脑的命令行,执行以下命令即可。请确保你的电脑已经安装了Git,否则会失败

git clone https://gitee.com/mxbai/say_good_morning.git

修改相应的配置

使用文本编辑器工具打开 say_good_morning.py,同样,按照我上一篇文章或Git中的描述将以下几个值改为自己的数据就可以了

  • appId 该值为你的微信公众平台测试号的appId
  • appSecret 该值为你的微信公众平台测试号的appSecret
  • user_open_ids 该值为你的微信公众平台测试号用户列表中的微信号
  • user_dict 按照代码中的格式修改
  • weather_url 对应的值可以在 https://www.yiketianqi.com/ 网址进行获取
  • yiju_url 对应的值可以在 https://www.mxnzp.com/ 网址进行获取

创建云函数

以下内容请认真阅读

打开任意一个云产品,此处以腾讯云为例

腾讯云 云函数SCF:https://cloud.tencent.com/product/scf
阿里云 函数计算FC:https://www.aliyun.com/product/fc
百度云 函数计算CFC:https://cloud.baidu.com/product/cfc.html

打开腾讯云,鼠标悬停在产品上,搜索 云函数,如下:

点击结果,跳转至都对应页面,如下图:

点击立即体验

点击前往控制台

随后点击左侧的函数服务,点击创建,新建一个函数

云函数基础配置

在基础配置中,函数类型选择 事件函数,函数名称可以随意写,但是注意只允许为英文;地域选择 北京 或者其他城市;运行环境选择 Python 3.7或更高版本

函数代码

在函数代码中,提交方法和执行方法都为默认即可,无需特殊改动

在代码编辑器中,将之前修改完的代码,粘贴进来

完整代码见文末

这里需要注意以下几点

第一行的编码类型切勿删除
将原代码中除 getDiffDays() 方法之外的所有代码全部放在编辑器原有的 main_handler()方法中,切记要有缩进
原有方法 main_handler(event, context) 中的两个默认入参务必保留,即使你未使用到

云函数高级配置

在高级配置中,保持默认即可

在触发配置中,触发方式选择定时触发,定时任务名称可以随意写,触发周期可以按需选择,此处我选择 自定义触发周期,Cron表达式按其要求格式填写(参考:https://cloud.tencent.com/document/product/583/9708)

填写完成后点击完成即可

测试云函数

完成后,依次点击 函数管理 -> 函数代码 点击左下角的 测试按钮进行云调试,控制台输出以下内容且微信有收到消息推送即表示成功

错误解决

如果出现以下报错,请按下面的方式进行处理

依次点击 函数管理 -> 函数代码 -> 终端 -> 新终端

在代开的终端中输入以下命令回车即可

pip3 install requests -t ./src

此步骤是手动将 requests 模块进行安装

目前仅发现腾讯云云函数需要手动安装模块,百度云和阿里云并未发现该问题


大功告成

到此,我们就摆脱了云服务器的束缚,使用免费云产品实现定时发送微信消息

好了,今天的内容就到此结束,有任何问题请 评论区留言 或者 后台私信


完整代码如下,请按需修改

# -*- coding: utf8 -*-
import json
import random
import requests
import datetime as dt# 获取日期间隔函数
def getDiffDays(date1, date2):date1 = dt.datetime.strptime(date1, '%Y-%m-%d')date2 = dt.datetime.strptime(date2, '%Y-%m-%d')days = (date2 - date1).daysreturn daysdef main_handler(event, context):# 自己微信公众号的 appId 和 appSecretappId = ''appSecret = ''# 微信公众号请求 urlwxgzh_url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appId + "&secret=" + appSecret# 获取微信 access_tokenaccess_token_json = requests.get(wxgzh_url).json()access_token = access_token_json['access_token']# 用户 open_id 列表user_open_ids = ['']# 获取今天的日期today = str(dt.datetime.today())[:10]# 用户字典user_dict = {'': {# birthday格式:yyyy-MM-dd'birthday': '','city': '北京'},'': {'birthday': '','city': '上海'}}# 获取天气信息"""获取地址:http://www.tianqiapi.com/ 参考返回{'nums': 7, 'cityid': '101010100', 'city': '北京', 'date': '2022-08-22', 'week': '星期一', 'update_time': '14:44', 'wea': '多云', 'wea_img': 'yun', 'tem': '32', 'tem_day': '32', 'tem_night': '19', 'win': '北风', 'win_speed': '2级', 'win_meter': '9km/h', 'air': '27', 'pressure': '998', 'humidity': '32%'}"""weather_url = 'https://www.yiketianqi.com/free/day?appid=&appsecret=&unescape=1&city='weather_text = requests.get(weather_url).json()# 每日一句yiju_url = 'https://www.mxnzp.com/api/daily_word/recommend?count=10&app_id=&app_secret='yiju_text = requests.get(yiju_url).json()# 这是一句话 可以自行修改message = ''# 自己的模板 IDtemplate_id = ''# 以下代码请勿修改# 循环发送消息for user in user_open_ids:# 获取用户信息user_info = user_dict[user]# 用户所在城市user_city = user_info['city']user_bir = user_info['birthday']user_weather_url = weather_url + user_city# 用户所在城市的天气信息user_weather_text = requests.get(user_weather_url).json()# 获取该用户还有多少天生日diff_bir = str(getDiffDays(today, user_bir))# 组装请求参数req_data = {'touser': user,'template_id': template_id,'data': {'first': {'value': message,'color': "#f00"},'data1': {'value': user_weather_text['date'],'color': "#000"},'data2': {'value': user_weather_text['week'],'color': "#000"},'data3': {'value': user_weather_text['tem'],'color': "#FF8800"},'data4': {'value': user_weather_text['city'],'color': "#000"},'data5': {'value': user_weather_text['wea'],'color': "#000"},'data6': {'value': user_weather_text['tem_night'],'color': "#00BBFF"},'data7': {'value': user_weather_text['tem_day'],'color': "#FF0000"},'data8': {'value': user_weather_text['win'],'color': "#00AA55"},'data9': {'value': user_weather_text['win_speed'],'color': "#00AA55"},'data10': {'value': diff_bir,'color': "#FF0000"},'data11': {'value': yiju_text['data'][random.randint(1, 10)]['content'],'color': "#FF0000"}}}'''数据转换,发送请求'''json_data = json.JSONEncoder().encode(req_data)url = 'https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=' + access_tokenres = requests.post(url, data=json_data)res_text = json.JSONDecoder().decode(res.text)if res_text['errcode'] == 0:print(f'用户 {user} 发送成功')


推荐阅读
  • 本文探讨了如何在 PHP 的 Eloquent ORM 中实现数据表之间的关联查询,并通过具体示例详细解释了如何将关联数据嵌入到查询结果中。这不仅提高了数据查询的效率,还简化了代码逻辑。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 如何在PHPcms网站中添加广告
    本文详细介绍了在PHPcms网站后台添加广告的方法,涵盖多种常见的广告形式,如百度广告和Google广告,并提供了相关设置的步骤。同时,文章还探讨了优化网站流量的SEO策略。 ... [详细]
  • 在哈佛大学商学院举行的Cyberposium大会上,专家们深入探讨了开源软件的崛起及其对企业市场的影响。会议指出,开源软件不仅为企业提供了新的增长机会,还促进了软件质量的提升和创新。 ... [详细]
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • 离线环境下的Python及其第三方库安装指南
    在项目开发中,有时会遇到电脑只能连接内网或完全无法联网的情况。本文将详细介绍如何在这种环境下安装Python及其所需的第三方库,确保开发工作的顺利进行。 ... [详细]
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • 脑机接口(BCI)技术正逐步将科幻变为现实,从帮助听障人士恢复听力到使瘫痪者重新站立,甚至可能将多年的学习过程压缩至瞬间。本文探讨了这一前沿技术的现状、挑战及其未来前景。 ... [详细]
  • RecyclerView初步学习(一)
    RecyclerView初步学习(一)ReCyclerView提供了一种插件式的编程模式,除了提供ViewHolder缓存模式,还可以自定义动画,分割符,布局样式,相比于传统的ListVi ... [详细]
  • VSCode与Gitee集成:项目提交的高效实践
    本文介绍如何利用VSCode内置的Git工具将项目提交到Gitee,简化Git命令的使用,提升代码管理效率。同时分享一些常见的踩坑经验和解决方案。 ... [详细]
  • 本次考试于2016年10月25日上午7:50至11:15举行,主要涉及数学专题,特别是斐波那契数列的性质及其在编程中的应用。本文将详细解析考试中的题目,并提供解题思路和代码实现。 ... [详细]
  • 爱奇艺视频下载指南
    随着百度在视频领域的不断扩展,爱奇艺的内容库日益丰富,涵盖了大量新番动画、电影、电视剧和综艺节目。本文将详细介绍如何通过爱奇艺客户端下载视频,帮助用户轻松实现离线观看。 ... [详细]
  • TCP长连接设备管理平台:架构与功能概览
    本文介绍了基于TCP长连接的设备管理平台的设计理念、技术选型及主要功能模块。最初,项目旨在实现简单的协议测试,但随着需求扩展,逐步演变为一个完整的前后端分离系统。 ... [详细]
author-avatar
红太郎的等待_921
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有