微信小程序推送消息java版

需求背景

使用springboot2+微信小程序推送消息。百度了一下看了一篇文章整體還可以,這里推薦一下。

教程解析

1、微信平臺開通訂閱消息。

2、添加模板。

3、springboot后臺接口開發

微信平臺驗證地址接口開發,然后部署到公網服務器。

4、微信平臺驗證。看備注1。

5、小程序前端開發。看備注2。

靜默登錄獲取用戶openid,用戶訂閱消息的功能開發。如果用戶不訂閱消息發送會報錯。如果你剛訂閱消息就調用接口發送消息可能也會報錯,因為會有延遲幾分鐘。不要時刻盯著接口,你只需要盯著手機是否收到消息就行。以下是效果圖

小程序消息推送教程

https://blog.51cto.com/u_16099268/8500358

備注

1、微信平臺驗證。

// 登錄地址
https://mp.weixin.qq.com/cgi-bin/loginpage?url=%2Fwxamp%2Fdevprofile%2Fget_profile%3Ftoken%3D1297599611%26lang%3Dzh_CN// 管理員或開發人員掃碼登錄

?點擊【開發管理】-【開發設置】,一直向下滑動頁面。找到【消息推送】,輸入相關的信息,然后確定。點這個按鈕的前提是URL地址的驗證代碼已經部署上去了。

2、小程序靜默獲取openid。

/*** 生命周期函數--監聽頁面加載*/onLoad(options) {this.getWxLoginByHidden();},getWxLoginByHidden(){let _this = this;wx.login({success: (res) => {let code = res.code;let appId = "你的appid";let secret = "你的secret";wx.request({url:'https://api.weixin.qq.com/sns/jscode2session?appid=' + appId + '&secret=' + secret + '&js_code=' + code + '&grant_type=authorization_code',data:{},header:{'content-type': 'json'},success: (user_res) => {console.log("靜默授權登錄成功. openid="+user_res.data.openid);// 處理自己的業務邏輯,比如保存openid到數據庫}});}});},

結束

-----華麗的分割線,以下是湊字數,大家不用花時間看,快去改代碼-----

-----華麗的分割線,以下是湊字數,大家不用花時間看,快去改代碼-----

-----華麗的分割線,以下是湊字數,大家不用花時間看,快去改代碼-----

?

package cn.renkai721.bean.vo;import lombok.extern.slf4j.Slf4j;@Slf4j
public class MakeUpTheWordCount {private String make_up_the_word_count_column_999999999_1;private String make_up_the_word_count_column_999999999_2;private String make_up_the_word_count_column_999999999_3;private String make_up_the_word_count_column_999999999_4;private String make_up_the_word_count_column_999999999_5;private String make_up_the_word_count_column_999999999_6;private String make_up_the_word_count_column_999999999_7;private String make_up_the_word_count_column_999999999_8;private String make_up_the_word_count_column_999999999_9;private String make_up_the_word_count_column_999999999_10;private String make_up_the_word_count_column_999999999_11;private String make_up_the_word_count_column_999999999_12;private String make_up_the_word_count_column_999999999_13;private String make_up_the_word_count_column_999999999_14;private String make_up_the_word_count_column_999999999_15;private String make_up_the_word_count_column_999999999_16;private String make_up_the_word_count_column_999999999_17;private String make_up_the_word_count_column_999999999_18;private String make_up_the_word_count_column_999999999_19;private String make_up_the_word_count_column_999999999_20;public String getMake_up_the_word_count_column_999999999_1() {return make_up_the_word_count_column_999999999_1;}public void setMake_up_the_word_count_column_999999999_1(String make_up_the_word_count_column_999999999_1) {this.make_up_the_word_count_column_999999999_1 = make_up_the_word_count_column_999999999_1;}public String getMake_up_the_word_count_column_999999999_2() {return make_up_the_word_count_column_999999999_2;}public void setMake_up_the_word_count_column_999999999_2(String make_up_the_word_count_column_999999999_2) {this.make_up_the_word_count_column_999999999_2 = make_up_the_word_count_column_999999999_2;}public String getMake_up_the_word_count_column_999999999_3() {return make_up_the_word_count_column_999999999_3;}public void setMake_up_the_word_count_column_999999999_3(String make_up_the_word_count_column_999999999_3) {this.make_up_the_word_count_column_999999999_3 = make_up_the_word_count_column_999999999_3;}public String getMake_up_the_word_count_column_999999999_4() {return make_up_the_word_count_column_999999999_4;}public void setMake_up_the_word_count_column_999999999_4(String make_up_the_word_count_column_999999999_4) {this.make_up_the_word_count_column_999999999_4 = make_up_the_word_count_column_999999999_4;}public String getMake_up_the_word_count_column_999999999_5() {return make_up_the_word_count_column_999999999_5;}public void setMake_up_the_word_count_column_999999999_5(String make_up_the_word_count_column_999999999_5) {this.make_up_the_word_count_column_999999999_5 = make_up_the_word_count_column_999999999_5;}public String getMake_up_the_word_count_column_999999999_6() {return make_up_the_word_count_column_999999999_6;}public void setMake_up_the_word_count_column_999999999_6(String make_up_the_word_count_column_999999999_6) {this.make_up_the_word_count_column_999999999_6 = make_up_the_word_count_column_999999999_6;}public String getMake_up_the_word_count_column_999999999_7() {return make_up_the_word_count_column_999999999_7;}public void setMake_up_the_word_count_column_999999999_7(String make_up_the_word_count_column_999999999_7) {this.make_up_the_word_count_column_999999999_7 = make_up_the_word_count_column_999999999_7;}public String getMake_up_the_word_count_column_999999999_8() {return make_up_the_word_count_column_999999999_8;}public void setMake_up_the_word_count_column_999999999_8(String make_up_the_word_count_column_999999999_8) {this.make_up_the_word_count_column_999999999_8 = make_up_the_word_count_column_999999999_8;}public String getMake_up_the_word_count_column_999999999_9() {return make_up_the_word_count_column_999999999_9;}public void setMake_up_the_word_count_column_999999999_9(String make_up_the_word_count_column_999999999_9) {this.make_up_the_word_count_column_999999999_9 = make_up_the_word_count_column_999999999_9;}public String getMake_up_the_word_count_column_999999999_10() {return make_up_the_word_count_column_999999999_10;}public void setMake_up_the_word_count_column_999999999_10(String make_up_the_word_count_column_999999999_10) {this.make_up_the_word_count_column_999999999_10 = make_up_the_word_count_column_999999999_10;}public String getMake_up_the_word_count_column_999999999_11() {return make_up_the_word_count_column_999999999_11;}public void setMake_up_the_word_count_column_999999999_11(String make_up_the_word_count_column_999999999_11) {this.make_up_the_word_count_column_999999999_11 = make_up_the_word_count_column_999999999_11;}public String getMake_up_the_word_count_column_999999999_12() {return make_up_the_word_count_column_999999999_12;}public void setMake_up_the_word_count_column_999999999_12(String make_up_the_word_count_column_999999999_12) {this.make_up_the_word_count_column_999999999_12 = make_up_the_word_count_column_999999999_12;}public String getMake_up_the_word_count_column_999999999_13() {return make_up_the_word_count_column_999999999_13;}public void setMake_up_the_word_count_column_999999999_13(String make_up_the_word_count_column_999999999_13) {this.make_up_the_word_count_column_999999999_13 = make_up_the_word_count_column_999999999_13;}public String getMake_up_the_word_count_column_999999999_14() {return make_up_the_word_count_column_999999999_14;}public void setMake_up_the_word_count_column_999999999_14(String make_up_the_word_count_column_999999999_14) {this.make_up_the_word_count_column_999999999_14 = make_up_the_word_count_column_999999999_14;}public String getMake_up_the_word_count_column_999999999_15() {return make_up_the_word_count_column_999999999_15;}public void setMake_up_the_word_count_column_999999999_15(String make_up_the_word_count_column_999999999_15) {this.make_up_the_word_count_column_999999999_15 = make_up_the_word_count_column_999999999_15;}public String getMake_up_the_word_count_column_999999999_16() {return make_up_the_word_count_column_999999999_16;}public void setMake_up_the_word_count_column_999999999_16(String make_up_the_word_count_column_999999999_16) {this.make_up_the_word_count_column_999999999_16 = make_up_the_word_count_column_999999999_16;}public String getMake_up_the_word_count_column_999999999_17() {return make_up_the_word_count_column_999999999_17;}public void setMake_up_the_word_count_column_999999999_17(String make_up_the_word_count_column_999999999_17) {this.make_up_the_word_count_column_999999999_17 = make_up_the_word_count_column_999999999_17;}public String getMake_up_the_word_count_column_999999999_18() {return make_up_the_word_count_column_999999999_18;}public void setMake_up_the_word_count_column_999999999_18(String make_up_the_word_count_column_999999999_18) {this.make_up_the_word_count_column_999999999_18 = make_up_the_word_count_column_999999999_18;}public String getMake_up_the_word_count_column_999999999_19() {return make_up_the_word_count_column_999999999_19;}public void setMake_up_the_word_count_column_999999999_19(String make_up_the_word_count_column_999999999_19) {this.make_up_the_word_count_column_999999999_19 = make_up_the_word_count_column_999999999_19;}public String getMake_up_the_word_count_column_999999999_20() {return make_up_the_word_count_column_999999999_20;}public void setMake_up_the_word_count_column_999999999_20(String make_up_the_word_count_column_999999999_20) {this.make_up_the_word_count_column_999999999_20 = make_up_the_word_count_column_999999999_20;}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/42315.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/42315.shtml
英文地址,請注明出處:http://en.pswp.cn/web/42315.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于FPGA的數字信號處理(15)--定點數的舍入模式(6)向0取整fix

前言 在之前的文章介紹了定點數為什么需要舍入和幾種常見的舍入模式。今天我們再來看看另外一種舍入模式:向上取整fix。 10進制數的fix fix:也叫 向0取整。它的舍入方式是數據往0的方向,舍入到最近的整數,比如1.75 fix到2&#xf…

Docker技術簡介

Docker是一種開源的容器化平臺,旨在簡化應用程序的創建、部署和運行過程。它通過將應用程序及其所有依賴項打包到一個稱為容器的可移植單元中來實現這一目標。以下是Docker技術的簡介: Docker的核心概念 1、容器(Container)&…

將WordPress的文章重新排序的3個方法

有效的調整文章顯示順序看開可以更好突出內容,還可以保持網站的新鮮感,今天我將帶您了解三種方法,通過重新排序文章顯著提升網站的吸引力。我們將逐步講解從調整設置到使用插件以及“置頂”文章的每一種方法,確保WordPress 新手也…

Linux將mysql導出

1、基礎導出 要在Linux系統中將MySQL數據庫導出,通常使用mysqldump命令行工具。以下是一個基本的命令示例,用于導出整個數據庫: mysqldump -u username -p database_name > export_filename.sql 其中: username 是你的MySQL用…

利用python進行數據分析 —— python正則表達式(持續更新中!)

文章目錄 利用python進行數據分析 —— python基礎知識進階重點筆記:正則表達式re.match 匹配開頭re.search 全文匹配re.sub 替換刪除re.compile 編譯正則findall 返回列表finditer 返回迭代器re.split 分割返回列表(?P...) 分組匹配正則表達符號、修飾符通配符1 ^…

谷歌上新!最強開源模型Gemma 2,27B媲美LLaMA3 70B,挑戰3140億Grok-1

文章目錄 LMSYS Chatbot Arena:開源模型性能第一Gemma為什么這么強?架構創新對AI安全性的提升 A領域競爭激烈,GPT-4o 和 Claude 3.5 Sonnet 持續發力,谷歌迅速跟進。 谷歌為應對AI競爭所采取的策略:依靠 Gemini 閉源模…

hdu物聯網硬件實驗3 按鍵和中斷

學院 班級 學號 姓名 日期 成績 實驗題目 按鍵和中斷 實驗目的 實現閃燈功能轉換 硬件原理 無 關鍵代碼及注釋 /* Button Turns on and off a light emitting diode(LED) connected to digital pin 13, when pressing a pushbutton attached…

AI端側大模型未來發展趨勢

一、定義與優勢 端側AI大模型是指基于移動終端設備上的大型神經網絡模型,這些模型能夠在本地設備(如智能手機、PC、汽車、XR以及物聯網設備等)上直接運行和處理人工智能算法,實現如圖像識別、語音識別、自然語言處理等任務。端側…

解決WSL2報錯:當前電腦配置不支持WSL2,請啟用虛擬機平臺 Windows 功能并確保在 BIOS 中啟用虛擬化

事情要追溯到突發奇想下載了騰訊的手游模擬器開始。。。因為一直閃退,模擬器自檢就要求把虛擬化功能關閉了,結果還是一直閃退,WSL2也給我報錯了。。。大無語 主要通過以下兩個步驟解決,操作了之后需要把電腦重啟: 一、…

docker里日志分割的方法

在Docker中對日志進行按大小分割(log rotation)是一個常見的需求,因為長時間運行的容器可能會生成大量日志,導致磁盤空間不足。Docker提供了內置的日志管理功能,可以通過配置日志驅動來實現日志的自動分割。以下是具體…

安卓系統裁剪原生app

目錄 前言一、修改build目錄main.mk二、修改build目錄product.mk三、在.mk中使用PRODUCT_DEL_PACKAGES屬性 前言 安卓系統裁剪預置應用或服務基本步驟 一、修改build目錄main.mk ifdef FULL_BUILD# The base list of modules to build for this product is specified# by th…

小程序做自定義分享封面圖,Canvas base64圖片數據真機上不顯示?【已解決】

首選說一下需求,做一個小程序分享,但是封面圖要自定義,除了要有對應商品還有有背景圖,商品名。類似這種 實現邏輯,把商品圖和背景圖,再加上價格和商品名用canvas 渲染出來 這是弄好之后的效果圖&#xff0…

管理者要勇敢做“壞人”

有點正義感的人都對壞人深惡痛絕,但在團隊管理上,有一種觀念或許會讓你感到意外,那就是管理者要敢于做“壞人”。這并不是讓管理者去做惡,而是在某些關鍵時刻,要有勇氣打破常規的“好人”形象,做出不受歡迎…

執行數據庫語句時沒有報錯,并且提示執行成功,但在數據庫中沒有新增數據

這可能是因為你沒有提交事務。在執行 INSERT、UPDATE 或 DELETE 等修改數據的操作后,需要明確地提交事務才能將更改持久化到數據庫中。 以下是一個示例,展示python中如何在執行 INSERT 語句后提交事務: import pymysql# MySQL數據庫連接配置…

SpringSecurity中文文檔(Servlet Method Security)

Method Security 除了在請求級別進行建模授權之外&#xff0c;Spring Security 還支持在方法級別進行建模。 您可以在應用程序中激活它&#xff0c;方法是使用EnableMethodSecurity 注釋任何Configuration 類&#xff0c;或者將 < method-security > 添加到任何 XML 配…

springbootAl農作物病蟲害預警系統-計算機畢業設計源碼21875

摘要 隨著農業現代化的推進&#xff0c;農作物病蟲害的防治已成為農業生產中的重要環節。傳統的病蟲害防治方法往往依賴于農民的經驗和觀察&#xff0c;難以準確、及時地預測和防控病蟲害的發生。因此&#xff0c;開發一種基于現代信息技術的農作物病蟲害預警系統&#xff0c;對…

【計算機畢業設計】012基于微信小程序的科創微應用平臺

&#x1f64a;作者簡介&#xff1a;擁有多年開發工作經驗&#xff0c;分享技術代碼幫助學生學習&#xff0c;獨立完成自己的項目或者畢業設計。 代碼可以私聊博主獲取。&#x1f339;贈送計算機畢業設計600個選題excel文件&#xff0c;幫助大學選題。贈送開題報告模板&#xff…

Python數據分析實戰,公交車站點設置優化分析,案例教程編程實例課程詳解

一、引言 隨著城市化進程的加快,公共交通在城市交通中扮演著越來越重要的角色。公交車站點作為公共交通系統的重要組成部分,其布局設計直接影響到公共交通的運輸效率和市民的出行體驗。本文將通過Python數據分析的方法,對某城市的公交車站點設置進行優化分析,旨在提出合理的…

解決vite 斷點調試定位不準確問題

問題&#xff1a;vite構建時&#xff0c;控制臺報錯行數等信息定位不準確或debugger斷點調試定位不準確 解決&#xff1a;F12后打開設置面板&#xff0c;把“JavaScript源代碼映射”去掉可臨時解決&#xff0c;如需永久解決需升級vite到最新版 還有一種&#xff1a; 參考&…

esp32_spfiffs

生成 spiffs image python spiffsgen.py <image_size> <base_dir> <output_file> eg, python spiffsgen.py 0x2000 ./folder hello.bin Arduino 的庫有例子可以直接用于 OTA 升級 spiffs 分區 HTTPUpdateResult HTTPUpdate::updateSpiffs(HTTPClient &h…