uniapp アプレットはどのようにメッセージをサブスクライブし、ユーザーにメッセージをプッシュしますか?
ミニ プログラムのテンプレート プッシュは、「1 回限りのサブスクリプション」と「長期サブスクリプション」に分かれています。
1 回限りのサブスクリプション: ユーザーがミニ プログラムにサブスクライブした後、プログラムは指定された OpenId を 1 回のみプッシュできます テンプレート メッセージは複数回プッシュできません
長期サブスクリプション: ユーザーは長期間サブスクライブし、テンプレート メッセージを複数回プッシュできます (長期サブスクリプション テンプレート) WeChat公式に申請する必要があります)
この記事をより包括的に理解するために、デバッグ用のフロントエンド ページにすべて書かれていますが、開発中はフロントエンドがユーザーの承認を取得した後、バックエンドで処理されます。
<template>
<view>
<view class="">
<button @click="openid">获取openid</button>
</view>
<view class="">
<button @click="getToken">获取token</button>
</view>
<view class="">
<button @click='notification'>推送消息</button>
</view>
</view>
</template>
WeChat パブリック プラットフォームでミニ プログラム APPID とミニ プログラム キーを探します。
そのうち、thing1、time2、number3、thing4、thing6 は、次のテンプレートに従って定義されています。ミニ プログラムでは、テンプレートの使用ルールに注意してください
背景には、テンプレートのコンテンツに対応するフィールドも追加する必要があります
return:{
useropenid:'',
mytoken:'',
tmplIdsone:'', // 要发送订阅的模板id
wxappid:'', // 小程序appID
wxsecret:'', // 小程序密钥
pushmsg: {
"touser": 'xxx', // 获取到的用户openid
"template_id": "xxxx", // 对应的模板id(微信公众平台中的订阅消息,选择对应模板)
"data": {
"thing1": {
"value": "李四"
},
"time2": {
"value": "2021年4月14日 14:05"
},
"number3": {
"value": "10"
},
"thing4": {
"value": "20"
},
"thing6": {
"value": "张三"
}
},
"page":"" //进入哪个页面
},
}
API を呼び出してログイン ユーザーの openid を取得する
このうち、appid と Secret はパブリック プラットフォームで見つけることができます
async openid() {
wx.login({
success(res) {
if (res.code) {
wx.request({
url: `https://api.weixin.qq.com/sns/jscode2session?appid=${
this.wxappid}&secret=${
this.wxsecret}&js_code=${
res.code}&grant_type=authorization_code`,
success(data) {
this.useropenid = data.data.openid
this.pushmsg.touser = this.useropenid
}
})
} else {
console.log('获取失败!' + res.errMsg)
}
}
})
},
wx.requestSubscribeMessage()、ユーザー認証を取得します
プッシュ メッセージ テンプレートのトークンを取得します
AppId と Secret に従って開発ドキュメント API を呼び出しますトークンを取得するには a>
getToken() {
wx.requestSubscribeMessage({
tmplIds: [this.tmplIdsone], // 要发送订阅的模板id
success(res) {
for (let key in res) {
if (res[key] == "accept") {
uni.showToast({
title:'已允许消息推送'
})
wx.request({
url: `https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${
this.wxappid}&secret=${
this.wxsecret}`,
data: {
},
success: function(res) {
this.mytoken = res.data.access_token
}
})
} else{
}
}
},
fail: function(res) {
}
})
},
通話メッセージのプッシュ
notification() {
wx.request({
url: 'https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=' + this.mytoken,
data: JSON.stringify(this.pushmsg),
method: 'POST',
success: function(res) {
console.log(res)
},
})
}
プッシュ購読メッセージの結果
ミニ プログラムのサブスクリプション メッセージ パラメーター値のコンテンツ制限ルール
役に立った場合は、コレクションに追加し、フォローして、「いいね!」をしてください。