首页 > 其他分享 >微信公众号每日定时推送(天气)

微信公众号每日定时推送(天气)

时间:2023-09-06 18:05:44浏览次数:48  
标签:now 微信 Other 模板 定时 推送 DATA Special

1、请看VCR

微信公众号每日定时推送(天气)_地理位置

微信公众号每日定时推送(天气)_地理位置_02


这是真实效果图,因为地址过于详细这里保护一下个人隐私

ok,接下来直接上教程

2、相关API接口申请

2.1、 微信

2.1.1、微信公众平台申请测试账号

首先打开微信公众平台申请测试账号。 网页链接:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

微信公众号每日定时推送(天气)_API_03

要用微信登录,需要按一下那个登录按钮。然后扫描一下屏幕上的二维码,就可以进入了。需要记住页面上的几个数据,接下来这些数据会被添加到项目的常量类中。

微信公众号每日定时推送(天气)_API_04

用具体id替代xxx。

微信公众号每日定时推送(天气)_地理位置_05

2.1.2、让你想发送模板信息的人关注你的公众号

微信公众号每日定时推送(天气)_微信_06

用微信扫描左侧二维码关注。

咱们在项目里头要把关注者分开归类,通常可以分成两种类型:一类是Special,一类是Other。比如说,你和你对象是Special,那么你就可以指定个模板,只发送给Special。其他的朋友们,你可能希望他们都能关注你,但你又不想把和对象私用的模板上的内容每天都发给他们,那么你可以不把他们加入Special列表就行了。只要不是Special都按Other算。

在配置之后,你就能根据需要自定义模板并发送给不同的人群。

  • 第一种是发送给Special(比如发送带有纪念日内容的模板给你和你的对象)
  • 第二种是发送给Other(Other就是除了Special以外的其他关注者,比如发送带有天气预报的模板给其他人)
  • 第三种是发送给所有人

那么怎么配置呢?很简单,在项目的配置文件application.yml中找到specialOpenIdList,在下面添加就行关注人的id就行,添加的id会被视为Special

微信公众号每日定时推送(天气)_微信_07

只需简单操作,把特别关注Special模板的订阅者们(就像你和你的伙伴)的OpenID设定在这里,就万事大吉啦!

2.2、百度

打开百度地图开放平台,点击右上角登录百度账号(没有自己注册)

网页链接:https://lbsyun.baidu.com/index.php?title=首页

微信公众号每日定时推送(天气)_地理位置_08

登录以后点击右上方控制台

微信公众号每日定时推送(天气)_微信_09

我们需要创建一个应用

微信公众号每日定时推送(天气)_地理位置_10

输入应用名称然后翻到下面白名单校验填写: 0.0.0.0/0

微信公众号每日定时推送(天气)_地理位置_11

微信公众号每日定时推送(天气)_API_12

点击提交后自动转跳回控制台页面

微信公众号每日定时推送(天气)_微信_13

这里就会显示刚创建好的应用了,把鼠标移动到访问应用(AK)下面的英文的地方,会弹出来复制图标,复制这个AK,替换掉项目配置类WxConstants中BAI_DU_AK的值。

微信公众号每日定时推送(天气)_微信_14

2.3、天行API

打开天行API官网,注册登录后每天会赠送免费的请求次数。

网页链接:https://www.tianapi.com/

微信公众号每日定时推送(天气)_API_15

打开后点击搜索框输入:每日英语

微信公众号每日定时推送(天气)_API_16

然后点击进行申请。 申请完成后,我们点击右上角的控制台进入

微信公众号每日定时推送(天气)_微信_17

点击 ”数据管理“ 然后点击 ”我的密钥key“ ,复制apiKey替换掉项目配置类WxConstants中TX_AK的值。

微信公众号每日定时推送(天气)_API_18

微信公众号每日定时推送(天气)_微信_19

至此当前项目所需要的调用相关的KEY申请完成。

3、模板配置

上面说过,模板可以向三种人发送,然后给Special和Other发模板。 这里讲解分别给Special和Other分别发送模板。 首先,项目里有一个WxTemplateType的枚举类

微信公众号每日定时推送(天气)_地理位置_20

四个参数的含义分别如上面所示,枚举类中已经定义好了两个模板,第一个是给Special的关注者发送的模板,第二个是Other关注者发送的模板(除了定义好的Special以外的订阅者都叫Other) 其中第一个参数templateId使用了一个常量类WxTemplateConstants去维护

微信公众号每日定时推送(天气)_API_21

这里面的xxx就是等会需要我们在微信测试公众平台上创建的模板对应的模板id。 进入微信测试公众平台,往下拉,找到模板消息接口配置的地方。 这里我已经定义好了两个模板,分别给Special和Other来发送的

微信公众号每日定时推送(天气)_微信_22

给Special的模板样式如下

当前位置:{{location.DATA}}

实时天气:{{now_temp.DATA}}°C  {{now_weather.DATA}}
气象:{{now_wind_dir.DATA}}{{now_wind_class.DATA}} | 湿度{{now_rh.DATA}}%
今天:{{today_weather.DATA}}  {{today_high.DATA}}/{{today_low.DATA}}°C
明天:{{tomorrow_weather.DATA}}  {{tomorrow_high.DATA}}/{{tomorrow_low.DATA}}°C

恋爱已经:{{meet_days.DATA}}天 ❤

今日英语:{{daily_english_en1.DATA}}{{daily_english_en2.DATA}}
译文:{{daily_english_cn1.DATA}}{{daily_english_cn2.DATA}}

给Other的模板样式如下

当前位置:{{location.DATA}}

实时天气:{{now_temp.DATA}}°C  {{now_weather.DATA}}
气象:{{now_wind_dir.DATA}}{{now_wind_class.DATA}} | 湿度{{now_rh.DATA}}%
今天:{{today_weather.DATA}}  {{today_high.DATA}}/{{today_low.DATA}}°C
明天:{{tomorrow_weather.DATA}}  {{tomorrow_high.DATA}}/{{tomorrow_low.DATA}}°C

今日英语:{{daily_english_en1.DATA}}{{daily_english_en2.DATA}}
译文:{{daily_english_cn1.DATA}}{{daily_english_cn2.DATA}}

模板也可以自己DIY写点骚话,具体参照微信的官方文档。

微信公众号每日定时推送(天气)_地理位置_23

创建好后,我们复制粘贴模板id替换掉WxTemplateConstants里的模板ID即可。 上述模板中给Special发送的时候有一个纪念日的日期,定义在WxConstants中,可以根据实际情况进行修改。不知道写什么时候就写看到我文章的日期吧,毕竟这是我们相遇的日子。

微信公众号每日定时推送(天气)_地理位置_24

4、配置与部署

4.1、没用云服务器的朋友看这里

项目使用的是sqlite数据库对信息进行保存,只需要在application.yml中配置好地址即可。 根据自己项目中wx.db的实际位置情况,复制粘贴全路径来覆盖下方红框位置即可。

微信公众号每日定时推送(天气)_微信_25

没有服务器的,可以使用内网穿透工具,将本机服务启动端口映射到一个公网域名上。这里推荐一种内网穿透工具Cpolar,点击链接下载对应版本并安装即可。(推荐还是云服务器,自己提升学习也是一个利器,面试的时候说:我自己有自己的服务器,维护了一个项目多牛)

网页链接:https://www.cpolar.com/

微信公众号每日定时推送(天气)_地理位置_26

打开后登录,点击隧道管理然后点击创建隧道

微信公众号每日定时推送(天气)_API_27

创建完成可以选一个ip复制

微信公众号每日定时推送(天气)_地理位置_28

粘贴到这个接口配置信息中,同时这个Token需要和项目里WxConstants类中的TOKEN对应,修改完点击提交。

微信公众号每日定时推送(天气)_地理位置_29

然后会在上方弹出一个配置成功的绿色的框。

接下来,在微信公众平台页面向下拉,找到获取用户地理位置的API,然后需要打开。这个意思是申请访问订阅者的地理位置,以便于实时根据订阅者地理位置推送天气。

微信公众号每日定时推送(天气)_微信_30

这里需要让订阅者打开位置信息服务,微信打开关注好的接口测试号,进入设置,打开 在聊天中使用地理位置 按钮。

微信公众号每日定时推送(天气)_地理位置_31

微信公众号每日定时推送(天气)_API_32

注意:这里第一次设置完成后,退出关注的公众号的聊天对话框界面,然后再次进入,来记录当前的位置。(只有第一次打开位置信息需要这样,以后每次收到信息之后,会自动更新一次实时位置)

到这里只要本地起项目就行了,我留有测试接口TestController类自己看一眼就明白了。

4.2、有服务器的朋友看这里

把配置文件改成这样

微信公众号每日定时推送(天气)_地理位置_33

#sqlite
spring:
  datasource:
    driver-class-name: org.sqlite.JDBC
    url: jdbc:sqlite::resource:db/wx.db
    username: ""
    password: ""

我这里使用的是MobaXtrem,创建一个文件夹然后把这些文件都丢上去

微信公众号每日定时推送(天气)_地理位置_34

前三个都是resources下的文件,log.txt是启动后会生成的文件,wxGZH.jar是项目打的包。

微信公众号每日定时推送(天气)_API_35

然后使用输入一下命令并喊出: 代码!启动!

nohup java -jar wxGZH.jar >log.txt 2>&1 &

接下来就参考4.1了,把服务区地址换上以及剩下操作

微信公众号每日定时推送(天气)_微信_36

标签:now,微信,Other,模板,定时,推送,DATA,Special
From: https://blog.51cto.com/u_16013021/7389030

相关文章

  • 微信人脉小程序软件开发
      微信人脉小程序是一款基于微信的信息和微信群,通过账号同步,其他用户一键加入群聊。该款的微信小程序可以实现在线搜索自己行业的微信群,与志同道合的人交流互动,拓宽自己的微信人脉,拓宽销售渠道,提高自己的业绩。  微信人脉小程序自动功能强大,可以实现以下几点的功能需求,来......
  • 【HMS Core】推送热门合集
    【问题描述1】推送消息成功,但只收到两条,其余收不到【解决方案】1、您是否开通了消息自分类,因为现在是有咨询营销类消息限制的。没有使用自分类权益的话默认是资讯营销类消息。推送数量管理细则参考2、您可以通过申请自分类权益,来使用服务与通讯类消息,这种是没有这个限制的消息分类......
  • 企业微信免登对接​配置
    企业微信免登对接配置1.应用配置企业微信OAuth2接入流程,https://developer.work.weixin.qq.com/1.加入企业,成为管理员;登录企业后台,https://work.weixin.qq.com/创建应用设置可访问的地址设置网页授权:验证域名访问路径下,需要可以访问可信IP,必须设置......
  • 重磅出击,微信小程序最新隐私协议弹窗解决方案
    微信官方公告❝微信日常整活,光权限和用户信息这一块不知道调整了多少次了,小程序开发者苦腾讯久已!上有政策,下有对策,这里讲解一下,新版本对线思路!❞啥都不说,先上社区评论为敬!友好评论1友好评论2这里展示的是原生小程序,因为Uniapp官网文档还没更新,其实方法都差不多,只是写法不同!前置问题......
  • python开发之微信的二次开发
    简要描述:根据消息回调收到的xml转发链接消息,适用于同内容大批量发送,可点击此处查看使用方式,第2大类4小节请求URL:http://域名地址/forwardUrl请求方式:POST请求头Headers:Content-Type:application/jsonAuthorization:login接口返回参数:参数名必选类型说明wId是string登录实例标识wcId是......
  • 微信小程序添加到企业微信应用后获取企业用户信息
      需求:    把已有微信小程序关联到企业微信的自建应用,获取企业用户手机号或企业微信userid进行相关处理。 步骤一,获取access_tokenhttps://developer.work.weixin.qq.com/document/path/91039  corpid(企业ID) secret(企业微信应用的secret) 步骤二,......
  • django-celery定时任务(beat)
    前言Celery可以异步执行,也可以通过定时任务触发Django中使用Celery要在Django项目中使用Celery,您必须首先定义Celery库的一个实例(称为“应用程序”)如果你有一个现代的Django项目布局,比如: 创建一个celery模块,来定义celery实例importo......
  • JPA-querydsl增强工具,query-dsl-plus,现在已开源并推送到mvnrepository
    前言约定俗成......一种接口通用的查询方法,简化开发,增强性能,让更多的精力放在更复杂的业务上。即--按照约定,将查询条件封装成string,前端随时随意更改,但是后台不用任何调整,一个查询接口就能完成绝大多数条件查询。由于喜欢使用JPA,所以后续就接触了query-dsl,但是呢,随着需求的变更,......
  • 达梦定时备份问题
    最近又有项目要用达梦,这次用的需要使用容器的。从官网下载下来。我用的是v8 .1.2.128_ent_x86_64版本   docker-compose文件是version:'3'services:dm8:image:dm8_single:v8.1.2.128_ent_x86_64_ctm_pack4container_name:dm8environment:......
  • 微信小程序关于用户隐私政策调整相关的开发配置流程
    前言:最近,微信小程序的开放内容调整属于是比较频繁的,先前有授权微信手机号不在免费转为收费,而在2023年9月15日前,获取一些隐私信息需要弹框请求用户授权;在此日期之后,微信的隐私政策进行了调整,需要在用户授权的同时要求用户先同意《用户隐私协议》内容后方可进行微信隐私内容获取......