国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【小程序】微信小程序關(guān)聯(lián)公眾號(服務(wù)號)推送通知消息

這篇具有很好參考價(jià)值的文章主要介紹了【小程序】微信小程序關(guān)聯(lián)公眾號(服務(wù)號)推送通知消息。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、背景

最近開發(fā)的一個小程序項(xiàng)目需要通過服務(wù)號來推送通知。但是在最開始開發(fā)小程序的時候并沒有考慮到這個功能。

二、準(zhǔn)備條件

預(yù)備知識

小程序openid:小程序用戶的唯一id

公眾號openid:公眾號用戶的唯一id

unionid:同一用戶,對同一個微信開放平臺下的不同應(yīng)用,unionid是相同的

準(zhǔn)備

1.將小程序與公眾號綁定(綁定后才可獲取unionid),官方文檔:小程序與公眾號綁定獲取unionid

2.接入微信公眾平臺開發(fā),也就是給服務(wù)號配置一下開發(fā)者服務(wù)器。當(dāng)有用戶關(guān)注/取消服務(wù)號時,微信服務(wù)器會推送關(guān)注/取消的事件給我們的服務(wù)器。官方文檔:接入微信公眾平臺開發(fā)

3.獲取公眾號用戶列表,即所有用戶的公眾號openid。官方文檔:獲取公眾號用戶列表

4.通過公眾號openid獲取用戶的unionid。官方文檔:通過公眾號openid獲取unionid

5.推送服務(wù)號消息。官方文檔:公眾號發(fā)送模版消息

注意

1.在上述的一些接口中,需要獲取access_token。小程序和公眾號的access_token是不同的,需要用各自的appid和secret去獲取。

2.access_token每天只能獲取200次,有效期是7200秒。所以應(yīng)該把它加入緩存,而不是每次都去獲取新的access_token。

三、開始開發(fā)

將小程序用戶與公眾號用戶關(guān)聯(lián):

小程序用戶openid→unionid←公眾號用戶openid

要想將小程序與公眾號用戶關(guān)聯(lián),第一件事就是獲取用戶的unionid。

我們可以在兩種情況下獲取用戶的unionid:

一、如果用戶已經(jīng)關(guān)注了公眾號,那么在用戶登錄的時候,就可以獲取到unionid

二、如果用戶沒有關(guān)注公眾號,那么得讓前端調(diào)用wx.getUserInfo,把加密數(shù)據(jù)給后端解密拿到unionid。

解密需要session_key,而session_key又有有效期,得注意它過期的情況。

當(dāng)用戶關(guān)注公眾號時,微信會推送事件給我們(本文準(zhǔn)備條件的第2條)。

通過關(guān)注事件,我們可以拿到用戶的公眾號openid,再獲取unionid(本文準(zhǔn)備條件的第4條)。拿到unionid后,去數(shù)據(jù)庫查詢這個unionid的用戶,并把公眾號openid保存。

但是,還有兩個情況沒有考慮到:

一、在我們開發(fā)之前,已經(jīng)關(guān)注了公眾號的用戶沒有去關(guān)聯(lián)

解決方案:

獲取微信公眾號的用戶列表,再依次獲取用戶unionid(本文準(zhǔn)備條件的第3、4條)。注意,此操作非常耗時。

二、用戶先關(guān)注了公眾號,但是從來沒用過小程序(數(shù)據(jù)庫里沒有unionid,導(dǎo)致無法關(guān)聯(lián))

解決方案:

新建一張表,把這個公眾號用戶先記錄下來。當(dāng)小程序用戶登錄時,先檢查一遍這張表嘗試關(guān)聯(lián)。

至此,小程序用戶與公眾號用戶就已經(jīng)完成了關(guān)聯(lián)。

發(fā)送模版消息:

這個就很簡單了,照著官方文檔(本文準(zhǔn)備條件的第5條)做就行了。

需要注意的是,參數(shù)別寫錯了,我就是把miniprogram放到data里面去了,導(dǎo)致不能跳轉(zhuǎn)小程序

最后附上發(fā)送模版消息的python代碼:文章來源地址http://www.zghlxwxcb.cn/news/detail-800300.html

def send_oa_msg(oa_openid, template_id, jump_param, param):
    """
    發(fā)送模版消息
    """
    oa_token = get_oa_access_token()
    url = 'https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={oa_token}'.format(oa_token=oa_token)
    post_data = {
        "touser": oa_openid,
        "template_id": template_id,
        "miniprogram": jump_param,
        "data": param
    }
 
    res = requests.post(url, json=post_data)
    result = res.json()
 
    if result['errcode'] == 0:
        return True
    else:
        return False

到了這里,關(guān)于【小程序】微信小程序關(guān)聯(lián)公眾號(服務(wù)號)推送通知消息的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包