日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

微信小程序推送公众号模板消息

發(fā)布時間:2024/1/4 综合教程 34 生活家
生活随笔 收集整理的這篇文章主要介紹了 微信小程序推送公众号模板消息 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、描述:

因小程序自帶推送只能實現(xiàn)單一推送,還得用戶授權(quán)后才能推送,想要實現(xiàn)相關(guān)內(nèi)容的多條推送,很顯然不夠用。

好在通過公眾號提送消息可以連接到小程序,并且公眾號單日上線10萬條,可以實現(xiàn)小程序推送功能。

那么問題來了,如何實現(xiàn)公眾號推送小程序相關(guān)消息呢?很顯然可以使用openid來實現(xiàn)。

下面簡單說明實現(xiàn)思路(假設(shè)各平臺已綁定):

  1. 獲取公眾號token(token每天限制200次,最好實現(xiàn)全局統(tǒng)一調(diào)用,避免token覆蓋導致的請求問題)

  2. 獲取公眾號關(guān)注用戶的openid

  3. 通過公眾號openid來獲取unionid(說明:unionid是微信開放平臺全局唯一標識)

  4. 通過unionid來獲取小程序的openid(一般這個可以查詢數(shù)據(jù)庫,設(shè)計數(shù)據(jù)庫應(yīng)該把openid,unionid字段設(shè)置上)

  5. 通過小程序openid,發(fā)送公眾號模板

二、前期準備:

1. 微信小程序認證

2. 微信公眾號認證

3. 微信開放平臺認證(小程序和公眾號綁定同一開放平臺,且必須認證)

三、代碼實現(xiàn)

1. 獲取公眾號access_token

通過微信公眾號的 AppId 和 AppSecret 獲取 公眾號的 access_token

說明:

  請求ip需在公眾號中的白名單

  access_token有效期為7200s(2h)

// 請求地址:
post https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=SECRET

// 返回結(jié)果
{
    "access_token": "ACCESS_TOKEN",
    "expires_in": 7200
}

2.獲取公眾號關(guān)注用戶的openid

一次拉取調(diào)用最多拉取10000個關(guān)注者的OpenID,可以通過多次拉取的方式來滿足需求。

參數(shù)說明:

  access_token:  調(diào)用憑證

  next_openid   第一個拉取的OPENID,不填默認從頭開始拉取

  

// 請求地址:
get https://api.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN&next_openid=NEXT_OPENID

// 返回結(jié)果:
{
    "count": 2,
    "data": {
        "openid": [
            "OPENID1",
            "OPENID2"
        ]
    },
    "next_openid": "NEXT_OPENID",
    "total": 2
}

3. 通過公眾號openid獲取對應(yīng)unionid

微信針對公眾號獲取用戶信息給出了2個接口:

  a. 獲取單個用戶信息

  b. 批量獲取用戶信息(每次最多100條)

我這里主要講解批量獲取用戶信息,如果想獲取單個用戶信息,可查看官方接口。

// 請求地址
https://api.weixin.qq.com/cgi-bin/user/info/batchget?access_token=ACCESS_TOKEN

// post數(shù)據(jù):
{
    "user_list": [
        {
            "openid": "openid1", 
            "lang": "zh_CN"
        },
        {
            "openid": "openid2", 
            "lang": "zh_CN"
        }
    ]
}



// 返回數(shù)據(jù)
{
    "subscribe": 1,
    "openid": "",
    "nickname": "",
    "sex": 1,
    "language": "",
    "city": "",
    "province": "",
    "country": "",
    "headimgurl": "",
    "subscribe_time": ,
    "unionid": "",  // 綁定開放平臺才會有
    "remark": "",
    "groupid": 0,
    "tagid_list": [
        128,
        2
    ],
    "subscribe_scene": "ADD_SCENE_QR_CODE",
    "qr_scene": ,
    "qr_scene_str": ""
} 

4. 通過unionid獲取小程序openid

因為是在開發(fā)小程序,所以像unionid和openid這都是在數(shù)據(jù)庫中存儲,因此在這里直接查詢數(shù)據(jù)庫信息即可,這里不過多介紹。

當然也可以通過前臺傳過來的code去解析openid,相關(guān)如下:

// 請求地址
https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code


// 返回結(jié)果
{
    "sex": 1,
    "photoUrl": "",
    "openId": "",
    "uniodId": ""
}

5. 發(fā)送模板消息

公眾號模板消息需要公眾號openid和小程序openid

// 請求地址
post https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN

// post數(shù)據(jù)
{
  "touser": "公眾號用戶openid",
  "template_id": "",
  "url": "http://weixin.qq.com/download",
  "miniprogram": {
    "appid": "小程序appid",
    "pagepath": "index?foo=bar"
  },
  "data": {
    "first": {
      "value": "恭喜你購買成功!",
      "color": "#173177"
    },
    "keyword1": {
      "value": "巧克力",
      "color": "#173177"
    },
    "keyword2": {
      "value": "39.8元",
      "color": "#173177"
    },
    "keyword3": {
      "value": "2014年9月22日",
      "color": "#173177"
    },
    "remark": {
      "value": "歡迎再次購買!",
      "color": "#173177"
    }
  }
}



// 返回結(jié)果
{
    "errcode":0,
     "errmsg":"ok",
     "msgid":200228332
}

使用效果:

注意:這里的小程序必須是線上已發(fā)布的才可以。

到此,公眾號消息推送算是完事啦。。。

總結(jié)

以上是生活随笔為你收集整理的微信小程序推送公众号模板消息的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。