收藏
回答

「小程序订阅消息」点击“总是保持以上选择,不再询问”+“允许”之后的推送次数是多少?


HI,如题,目前能想到的解决方案是有三种:

第一种是次数可以累加,例如,用户第一次使用小程序,不发送消息,第二次使用小程序不发送消息,第三次使用小程序,一共累计了3次,可以发送三条推送消息

第二种是次数不可以累加,例如,用户第一次使用小程序,不发送消息,第二次使用小程序不发送消息,第三次使用小程序,之后,可以发送一条消息

第三种是次数没有限制(虽然不太可能),例如用户第一次使用小程序,可以发送无限条消息



回答关注问题邀请回答
收藏

7 个回答

  • 再吃辣就是猪
    再吃辣就是猪
    2023-02-13

    据测试了解用户点击了“总是保持以上,不再询问”后,订阅消息只有有限条推送权限,不会超过五条,所以

    微信小程序获取用户当前订阅消息的授权,用户点击了“总是保持以上,不再询问”前端可以再次执行

    wx.requestSubscribeMessage()

    只是在执行该方法后不会再有询问弹框出现,但是会自动允许订阅信息推送+1


    2023-02-13
    有用
    回复 1
    • 树下菩提果👣
      树下菩提果👣
      2023-08-31
      这确定会自动允许订阅信息推送次数+1吗?
      2023-08-31
      回复
  • ___________
    ___________
    2020-09-20
    向指定用户推送消息(c#代码)
    [HttpPost]
            public JsonResult SubscribeMessageToUser(string openid, string title=null, string content=null)
            {
                AjaxResult res = new AjaxResult();
                res.state = false;
                try
                {
                    AccessTokenModel AccessTokenModel = xcx_Get_Token();//获取access_token
                    string _url = string.Format("https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token={0}", AccessTokenModel.access_token);
                    //json参数
                    string jsonParam = Newtonsoft.Json.JsonConvert.SerializeObject(new
                    {
                        touser = openid,//用戶openid
                        template_id = "模版ID",    // 模版template_id
                        page = "pages/index/index",
                        //miniprogram_state = "developer",
                        lang = "zh_CN",
                        data = new
                        {
                            thing1 = new { value = "签到提醒" },
                            time5 = new { value = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") },
                            thing2 = new { value =  "点击签到" }
                        }
                    });
                    var request = (HttpWebRequest)WebRequest.Create(_url);
                    request.Method = "POST";
                    request.ContentType = "application/json;charset=UTF-8";
                    byte[] byteData = Encoding.UTF8.GetBytes(jsonParam);
                    int length = byteData.Length;
                    request.ContentLength = length;
                    Stream writer = request.GetRequestStream();
                    writer.Write(byteData, 0, length);
                    writer.Close();
                    var response = (HttpWebResponse)request.GetResponse();
                    var responseString = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("utf-8")).ReadToEnd();
    
    
                    JavaScriptSerializer js = new JavaScriptSerializer();   //实例化一个能够序列化数据的类
                    AccessTokenModel_Err ErrInfo = js.Deserialize<AccessTokenModel_Err>(responseString);
    
    
                    //AccessTokenModel_Err ErrInfo = (AccessTokenModel_Err)JsonConvert.DeserializeObject(responseString);
                    res.message = ErrInfo.errmsg;
                    if(ErrInfo.errcode==0)
                        res.state = true;
                    //return responseString.ToString();
                }
                catch (Exception ex)
                {
                    res.state = false;
                    res.message = ex.Message;
                }
                return Json(res, JsonRequestBehavior.AllowGet);
            }
    
    2020-09-20
    有用
    回复
  • 🍄
    🍄
    2020-03-19

    “不在询问” 这个选项只是表示:用户勾选后下次调用 `wx.requestSubscribeMessage` 的时候相同的 templateId 不会再弹出授权窗,无用户感知,直接返回授权结果。这个只是 UI 层面上的

    其实用户点击一次允许(订阅一次)只能发送一条消息,因此如果需要发送订阅消息的话,需要开发的时候在触发器(如按钮点击事件处理函数、支付结果回调函数)里面每次都调用 `wx.requestSubscribeMessage` 请求授权。而在发送消息的时候可以通过 `subscribeMessage.send` 方法调用,根据结果返回确定用户是否订阅了,然后进行后续业务逻辑(如补发短信)。

    总之,不要被误导了,忘记发送次数的限制,在每个需要授权订阅的地方都调用授权请求

    期待微信官方对文档进行补充。

    2020-03-19
    有用
    回复
  • 🦁
    🦁
    2020-01-06

    点击“总是保持以上选择,不再询问”+“允许”之后,确实只能收到一条消息通知... 勾选总是,只是在下次调用wx.requestSubscribeMessage的时候帮你默认做出选择,但还是需要调用了这个才能收到消息... 而不是做出一次选择后就高枕无忧了... orz... 官方文档也没有写明确,有点坑...

    而且... 用户点击“总是保持以上选择,不再询问”+“取消”之后,可以在设置中打开权限,但是... 还是需要触发wx.requestSubscribeMessage才能收到消息... 牛皮啊...

    2020-01-06
    有用
    回复 2
    • 沉迷学习,日渐消瘦
      沉迷学习,日渐消瘦
      2020-03-17
      不知道哪个沙雕设计的这个功能,真没有模板消息好用
      2020-03-17
      1
      回复
    • 争鸣
      争鸣
      2021-04-10
      支持 傻雕 比喻,啃腚是坐办公室喝大茶不了解需求的猪搞出来的
      2021-04-10
      1
      回复
  • 哪(na)吒(tuo)
    哪(na)吒(tuo)
    2019-12-05

    只要你点击了总是取消,那么之前的累计次数 都会清零

    2019-12-05
    有用
    回复
  • chen
    chen
    2019-10-17

    发几条试试看,测试用例列出来,逐个测测

    2019-10-17
    有用
    回复 2
    • Dck
      Dck
      2019-10-17
      可以~
      2019-10-17
      回复
    • 毛祚雳
      毛祚雳
      2019-12-25回复Dck
      请问试着长期订阅消息条数是否存在上限?
      2019-12-25
      回复
  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2019-10-17

    勾不勾选,这和次数没关系吧

    2019-10-17
    有用
    回复 23
    • Dck
      Dck
      2019-10-17
      因为点击“总是保持以上选择,不再询问”+“允许”之后,不会再出现这个弹窗,所以不太清楚能给用户推送多少条消息
      2019-10-17
      回复
    • Dck
      Dck
      2019-10-17
      现在已知的是只点击“允许”之后,是只能够发送一条消息
      2019-10-17
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      2019-10-17回复Dck
      勾选只是保持当前的选择项,不在询问
      2019-10-17
      回复
    • Dck
      Dck
      2019-10-17回复假装在上海
      不限时间内,只能发送1条消息
      2019-10-17
      回复
    • Dck
      Dck
      2019-10-17回复o0o有脾气的酸奶
      也就是说,用户点击“总是保持以上选择,不再询问”+“允许”之后,用户第一次登陆,保持当前选项,我可以推送一个消息,但是没有发送,此时可以推送给用户的次数是1,第二次登陆,由于是保持当前选项,可以推送给用户的消息次数刷新,不过刷新之后的结果依然是1,也就是说我只能推送一次消息。
      2019-10-17
      回复
    查看更多(18)
登录 后发表内容
问题标签