精华内容
下载资源
问答
  • 我们知道一旦使用开发者模式,我们就无法使用公众号平台中的自动回复功能,也就是关注自动回复功能只有自己写才可以。如图所示,我们无法直接使用此功能。那么接着上一个博客,我们完成了关键词自动回复功能,博文...

    我们知道一旦使用开发者模式,我们就无法使用公众号平台中的自动回复功能,也就是关注自动回复功能只有自己写才可以。

    如图所示,我们无法直接使用此功能。

    那么接着上一个博客,我们完成了关键词自动回复功能,博文地址

    实现自动回复的机制就是:

    一旦用户给公众号一个触发(有可能发了一段文字、或者图片等等,也可能是关注了公众号),后台就会收到一个对应的XML消息,我们需要做的就是解析它,并作出回应即可。

    那么如果关注了一个公众号,公众号后台会收到这样的XML消息。

    123456789

    参数如下:

    以上,那就easy了,我们只要解析这个XML,获得MsgType为event,那么就进行判断event是否为“subscribe”如果是,就进行回复消息即可。

    关键代码如下:(具体代码看上一个博文)

    def parse_xml(web_data):

    if len(web_data) == 0:

    return None

    xmlData = ET.fromstring(web_data)

    msg_type = xmlData.find('MsgType').text

    ...#省略了一部分

    elif msg_type == 'event':#判断为事件消息

    #print('event')

    return EventMsg(xmlData)

    class EventMsg(Msg):

    def __init__(self, xmlData):

    Event.__init__(self, xmlData)

    self.Event = xmlData.find('Event').text#取Event这个参数里的内容

    if recMsg.MsgType == 'event':

    #print('yes')

    event = recMsg.Event

    if event == 'subscribe':#判断如果是关注则进行回复

    content = "。。。"

    replyMsg = reply.TextMsg(toUser, fromUser, content)

    return replyMsg.send()

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    展开全文
  • 之前做了一个微信H5页面抽奖的小功能,产品需求是用户在进入页面后判断用户是否已经关注此公众号,若没有关注,则唤起关注公众号页面。一、前期微信公众平台配置:1、获取appid,appsecret,添加白名单(1)登录微信...

    之前做了一个微信H5页面抽奖的小功能,产品需求是用户在进入页面后判断用户是否已经关注此公众号,若没有关注,则唤起关注公众号页面。

    一、前期微信公众平台配置:

    1、获取appid,appsecret,添加白名单

    (1)登录微信公众平台——>开发——>基本配置。开发中需要用到两个参数,appId和appSecret(appSecret只展示一次,需保存下来,否则需要重置获取)。

    50108cd19cf5

    image.png

    (2)获取access_token时需要添加IP白名单。

    2. 添加网页授权

    进入公众号设置——>功能设置——>网页授权域名

    二、服务端判断用户是否关注公众号

    1、获取全局access_token

    (access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效)

    50108cd19cf5

    image.png

    2、网页授权获取用户openid

    (1)用户同意授权,获取code

    50108cd19cf5

    image.png

    (2)通过code换取用户openid

    3、获取用户基本信息

    使用获取到的全局access_token和用户openid去请求获取用户基本信息接口:

    50108cd19cf5

    image.png

    在返回参数中:

    subscribe用户是否订阅该公众号标识,值为0时,代表此用户没有关注该公众号,拉取不到其余信息。

    三、H5页面唤起关注公众号页面

    上面已经说明如何判断用户是否已经关注公众号,那如何唤起关注页面,也就是如何跳转到关注页面引导用户关注呢,主要分为以下几个步骤:

    1、登录微信公众平台

    2、点击微信号头像右击查看源代码

    3、找到源代码中以下代码:

    50108cd19cf5

    image.png

    将uin_base64这个参数值带入以下链接:

    ==============================一下为本人思考=========================

    四、回到初始链接

    这一步还没有想好如何操作

    展开全文
  • 我们知道一旦使用开发者模式,我们就无法使用公众号平台中的自动回复功能,也就是关注自动回复功能只有自己写才可以。 如图所示,我们无法直接使用此功能。 那么接着上一个博客,我们完成了关键词自动回复功能,...
  • 当下,微信公众号规则并不支持微信关注公众号后直接跳转到指定路径链接,仅支持关注后推送消息,通过点击消息而跳转链接,公众号平台并不支持功能效果。如果想要实现功能效果,可以通过微号帮平台的粉丝关注定时推送...

    当下,微信公众号规则并不支持微信关注公众号后直接跳转到指定路径链接,仅支持关注后推送消息,通过点击消息而跳转链接,公众号平台并不支持功能效果。如果想要实现功能效果,可以通过微号帮平台的粉丝关注定时推送功能实现,也可自己根据公众号平台的接口开发实现功能,都可以为公众号实现关注推送消息,粉丝点击消息跳转指定路径链接。现微号帮平台所有功能注册授权公众号,立即免费试用7天!

    粉丝关注定时推送功能,支持粉丝微信关注按标签分组推送消息,支持关注推送文本信息,单图文,卡券,小程序,语音,图片,视频类型消息,文本信息能插入微商城链接,文章H5链接,页面模板专辑链接,微信小程序链接,粉丝昵称,粉丝头像,粉丝openid,会话代码,表情符号,单图文能插入微商城链接,文章H5链接,页面模板专辑链接,粉丝昵称,头像,openid,表情符号,小程序能插入粉丝昵称,openid,表情符号,支持粉丝微信关注推送20条消息,支持关注定时0秒到48小时内的时间推送,定时0秒推送即关注后立即推送。

    使用条件

    ⑴已授权公众号给微号帮

    ⑵已微信认证的公众号

    操作教程

    1、微号帮平台:免费注册试用7天

    根据页面上的提示完成新用户注册操作。

    9bb5865d9608b514fd66f312ede9551c.png

    2、用户登录

    注册成功后,通过用户名、密码登录微号帮平台。

    37b7b1bcfd2f74690d6e84b696120335.png

    3、登录成功后,进入管理中心,选择添加公众号,使用公众号管理员个人微信扫码授权给微号帮。

    1360b5cdbb0e078db0a5ddbc50a1198c.png

    4、公众号管理员微信扫码后,点击授权,将公众号的全部接口授权给微号帮,这样才能让粉丝关注定时推送功能的效果完全实现。

    4d26b7b3a8b7d2e55bcdfbf311af3390.png

    5、公众号授权成功后,进入管理中心,选择我的公众号,然后点击授权公众号的功能管理。

    7a9b24e681cb1ae8f2ea976a6c046834.png

    6、粉丝关注定时推送:推送信息设置

    进入功能管理后,找到高级功能,选择功能粉丝关注定时推送,点击推送信息设置,支持微信关注公众号推送消息,粉丝点击消息可以跳转指定路径链接。

    ef60fffbcbeac3e524547f4220b457c9.png

    7、推送信息设置:自定义弹出信息

    进入推送信息设置,点击自定义弹出信息,根据页面提示完成操作设置,支持回复文本信息,单图文,图片,语音,视频,卡券,小程序类型消息,支持按粉丝标签分组指定回复,支持自定义回复消息的昵称和头像。

    c292da6812aa1d5d17db19c0d0f3f83e.png

    8、粉丝关注定时推送:关注定时时间设置

    保存成功后,进入粉丝关注定时推送页面,选择对应行,点击对应粉丝关注后多长时间推送一列上的修改,支持设置定时0秒到48小时的时间点,定时0秒即关注后立即推送消息。

    009e281ea3d71ca05fd1caddbb352f24.png

    9、粉丝关注定时推送:开启关注定时推送任务

    定时时间设置成功后,点击对应行中的开启,然后重新关注授权的公众号等待定时推送,不开启不会自动关注定时推送消息。

    87b11cc3bbf92430c778bf43b1c99a34.png

    10、关注公众号后推送消息功能,在个人微信上的演示效果。现微号帮平台新用户注册,扫码授权公众号,即可免费试用7天,试用期间全部功能开放,测试满意后再在线支付开通;不满意也可在公众号平台取消授权给微号帮平台。

    c43c327cdd5bedef0c7d1bd7edfe8f3a.png
    展开全文
  • 扫二维码关注公众号

    2018-12-03 10:25:09
     网站实现扫描二维码关注微信公众号,如果已经关注公众号就自动登陆网站并获取其微信昵称,头像等信息,如果用户未关注就等用户关注公众号后自动登陆网站 –如果用户已关注公众号,网站端直接自动登陆,如果没有...

    原文链接

    需求
       网站实现扫描二维码关注微信公众号,如果已经关注公众号就自动登陆网站并获取其微信昵称,头像等信息,如果用户未关注就等用户关注公众号后自动登陆网站

    –如果用户已关注公众号,网站端直接自动登陆,如果没有关注,就等用户关注公众号之后网站端自动登陆

    (目前已经完成了这个功能,示例网址:http://www.bid-data.com/ 爱招标——免费实时标讯推送平台,为企业负责人及商务人员即时掌控招标动态、中标检索、竞争对手中标项目分析等服务平台。)

    做微信扫码登陆,生成二维码必须是微信公众号中绑定的域这个域名,网站生成不了二维码(网站与微信服务器不是同一个域名) ,而是调用微信系统的接口获取二维码,用户扫码后也是请求微信服务器

    实现思路
      1,微信的系统,提供生成带参数的二维码的接口,这个参数就是唯一值(场景值)
      2,网站调用微信系统,获取生成的二维码图片
      3,用户扫码会直接调用微信服务器,将用户访问微信服务器的信息记录到redis,key就是唯一值(场景值)
      4,网站端做轮训去查询redis中是否有这个唯一值的数据,如果有就获取用户信息登录,没有就五秒一次轮训,登录后就不在做轮训(从二维码弹出之后开始做轮训,关闭二维码后停止轮训)
       5,这里的唯一值是可以自己定义的,我用的是截取了几位的时间戳

    实现步骤
    (1)微信端:写一个获取带参数的临时二维码接口。
    复制代码
      // 临时二维码
    private final static String QR_SCENE = “QR_SCENE”;
    // 永久二维码
    private final static String QR_LIMIT_SCENE = “QR_LIMIT_SCENE”;
    // 永久二维码(字符串)
    private final static String QR_LIMIT_STR_SCENE = “QR_LIMIT_STR_SCENE”;
    // 创建二维码
    private String create_ticket_path = “https://api.weixin.qq.com/cgi-bin/qrcode/create”;
    // 通过ticket换取二维码
    private String showqrcode_path = “https://mp.weixin.qq.com/cgi-bin/showqrcode”;

    @RequestMapping("getQrcode")
    public @ResponseBody String getQrcode(@RequestParam(value = "sceneId")int sceneId) throws Exception{
    
        
        String ticket = createTempTicket(tokenService.getToken(),"2592000",sceneId);
        LOGGER.info("get wechat qrcode  ==> start");
        LOGGER.info("sceneId :"+sceneId);
        LOGGER.info("ticket :"+ticket);
        LOGGER.info("get wechat qrcode  ==> end");
        return ticket;
    }
    /** 
     * 创建临时带参数二维码 
     * @param accessToken 
     * @expireSeconds 该二维码有效时间,以秒为单位。 最大不超过2592000(即30天),此字段如果不填,则默认有效期为30秒。 
     * @param sceneId 场景Id 
     * @return 
     */  
    public String createTempTicket(String accessToken, String expireSeconds, int sceneId) {  
      
        TreeMap<String,String> params = new TreeMap<String,String>();  
        params.put("access_token", accessToken);  
        Map<String,Integer> intMap = new HashMap<String,Integer>();
        intMap.put("scene_id",sceneId);  
        Map<String,Map<String,Integer>> mapMap = new HashMap<String,Map<String,Integer>>();  
        mapMap.put("scene", intMap);  
        
        Map<String,Object> paramsMap = new HashMap<String,Object>();  
        paramsMap.put("expire_seconds", expireSeconds);  
        paramsMap.put("action_name", QR_SCENE);  
        paramsMap.put("action_info", mapMap);  
        String data = new Gson().toJson(paramsMap);  
        String tse = HttpRequestUtil.HttpsDefaultExecute(HttpRequestUtil.POST_METHOD,create_ticket_path,params,data);  
        
        JSONObject jsonObject = JSONObject.fromObject(tse);
        LOGGER.info("ticket :"+jsonObject.getString("ticket"));
    

    return showqrcode_path+"?ticket="+jsonObject.getString(“ticket”);
    }
    复制代码
    accessToken就是调用微信接口的凭证token
    (2)网站端:网站写一个调用微信生成二维码的接口

    复制代码
    @RequestMapping(“getQrcode”)
    public @ResponseBody Hashtable getQrcode(int sceneId){

        System.out.println(sceneId);
        
        Hashtable param = new Hashtable();
        param.put("sceneId", sceneId);
    
        String qrcodePath = HttpUtil.postRequest(Constant.getValue("get_qrcode"), param);
    
        System.out.println(" qrcodePath ==> "+qrcodePath);
        param.put("path", qrcodePath);
        return param;
    }
    

    复制代码
    直接使用http调用接口就行,Constant.getValue(“get_qrcode”)这个就是微信提供二维码接口的url

    (3)微信端:微信处理用户请求(这个地址是微信公众号填的那个地址,微信服务器会将所有用户请求转发到这个地址)

    复制代码
           // 事件推送
    else if (msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_EVENT)) {
    // 事件类型
    String eventType = requestMap.get(“Event”);
    // 关注
    if (eventType.equals(MessageUtil.EVENT_TYPE_SUBSCRIBE)) {

                    //获取用户信息
                    String requestUrl = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID";
                    requestUrl = requestUrl.replace("ACCESS_TOKEN", tokenService.getToken())
                            .replace("OPENID", fromUserName);
                    JSONObject jsonObject = CommonUtil.httpsRequest(requestUrl, "GET",null);
                    String nickname = jsonObject.getString("nickname");
                    String address = jsonObject.getString("country")+"-"+jsonObject.getString("province")+"-"+jsonObject.getString("city");
                    String headimgurl = jsonObject.getString("headimgurl");
    

    //将用户信息存入redis,key为唯一值(场景值)
    Hashtable params = new Hashtable();
    params.put(“phoneIme”, fromUserName);
    params.put(“state”, 1);
    params.put(“location”, address);
    params.put(“realName”, nickname);
    params.put(“nickname”, nickname);
    params.put(“headimgurl”, headimgurl);
    if(StringUtils.isNotBlank(eventKey)){
    redisCacheTool.setDataToRedis(eventKey.replace(“qrscene_”, “”), 3600, params);
    System.out.println("qrcode redis key ==> "+eventKey.replace(“qrscene_”, “”));
    params.put(“equipmentType”, eventKey);
    }
                //入库
    HttpUtil.postRequest(Constant.getValue(“UPDATE_USER”), params);

                }
                // 取消关注
                else if (eventType.equals(MessageUtil.EVENT_TYPE_UNSUBSCRIBE)) {
                    // TODO 取消订阅后用户不会再收到公众账号发送的消息,因此不需要回复
                    Hashtable params = new Hashtable();
                    params.put("phoneIme", fromUserName);
                    params.put("state", 0);
                    HttpUtil.postRequest(Constant.getValue("UPDATE_USER_ANS"), params);
                    
                }
                // 扫描带参数二维码
                else if (eventType.toLowerCase().equals(MessageUtil.EVENT_TYPE_SCAN)) {
                    // TODO 处理扫描带参数二维码事件
    

    if(StringUtils.isNotBlank(eventKey)){

                        String requestUrl = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID";
                        //获取用户信息
                        requestUrl = requestUrl.replace("ACCESS_TOKEN", tokenService.getToken())
                                .replace("OPENID", fromUserName);
                        JSONObject jsonObject = CommonUtil.httpsRequest(requestUrl, "GET",null);
                        String nickname = jsonObject.getString("nickname");
                        String address = jsonObject.getString("country")+"-"+jsonObject.getString("province")+"-"+jsonObject.getString("city");
                        String headimgurl = jsonObject.getString("headimgurl");
    

    //将用户信息存入redis,key为唯一值(场景值)
    Hashtable params = new Hashtable();
    params.put(“nickname”, nickname);
    params.put(“headimgurl”, headimgurl);
    params.put(“location”, address);
    redisCacheTool.setDataToRedis(eventKey, 3600, params);
    System.out.println("qrcode redis key ==> "+eventKey);
    }

                    respContent = "返回的信息";
                    textMessage.setContent(respContent);
                    respXml = MessageUtil.messageToXml(textMessage);
                }
    

    复制代码
    (4)网站端:登陆页面中做轮训,每隔几秒查询一次redis,如果有用户信息就登陆

    复制代码
    var timestamp = new Date().getTime() + “”;
    var str = timestamp.substring(8, timestamp.length);

        window.setInterval(function() {
        
        getUser(cont);
        
    }, 10000);
    
        function getUser() {
        $.ajax({
            type : 'get',
            data : {
                sceneId : str
            },
            dataType : 'json',
            url : "getUser.do",
            success : function(data) {
    
                if (data.msg == "success") {
                    location.reload(); 
                }
    
            },
            error : function(data) {
    
                if (data.msg == "success") {
                    location.reload();
                }
    
            }
        });
    }        
    

    复制代码

    –本文意在对网站实现微信公众号用户扫码关注登录的实现思路做了概述

    –这个方案中轮训访问是个问题,也是可以改进的地方,但是目前没有更好的方案,如果您有什么更好的建议,欢迎留言给点思路

    优化后的方案 :http://www.cnblogs.com/cmyxn/p/7814120.html

    展开全文
  • 上效果 实现前提 打开微信公众平台----->设置 ---------> 打开公众号关注组件 注:设置的公众号需与小程序主体一致。... console.log("关注公众号组件加载成功") }, official-account 为公
  • 判断用户是否关注公众号
  • 公众号平台无法在线实现关注推送多条信息,如果想要实现关注推送多条信息,可以通过公众号平台的接口开发实现功能,也可通过微号帮平台的粉丝关注定时推送功能实现,粉丝个人微信每次关注公众号都能推送多条信息,...
  • 我们知道一旦使用开发者模式,我们就无法使用公众号平台中的自动回复功能,也就是关注自动回复功能只有自己写才可以。如图所示,我们无法直接使用此功能。那么接着上一个博客,我们完成了关键词自动回复功能,博文...
  • 现在有一个新需求:客户端有一个奖励,关注公众号之后才能领取奖励。客户端直接跳转到微信,用户搜索公众号名称搜索关注。 实现逻辑: 同一个微信开放平台下,微信用户的unionid是唯一的,用户在登陆客户端app和...
  • 我们知道一旦使用开发者模式,我们就无法使用公众号平台中的自动回复功能,也就是关注自动回复功能只有自己写才可以。如图所示,我们无法直接使用此功能。那么接着上一个博客,我们完成了关键词自动回复功能,博文...
  • 原标题:推荐10个值得关注的技术公众号今天推荐一些行业内优质的技术公众号,这些号的主人在技术圈深耕多年,关注这些技术号可以让系统了解学习他们分享的技术经验,让我们的技术提升事半功倍。 程序员内推圈程序员...
  • 需求 解决方案 步骤 这里我们选择永久二维码 代码见第二章需求 用户通过微信扫码关注公众号获取...扫码是否关注公众号已关注,则微信会将带场景值扫描事件推送给开发者,根据场景判断当前二维码是否失效失效,公众号
  • 我们知道一旦使用开发者模式,我们就无法使用公众号平台中的自动回复功能,也就是关注自动回复功能只有自己写才可以。 如图所示,我们无法直接使用此功能。那么接着上一个博客,我们完成了关键词自动回复功能,...
  • 为了满足微信公众号关注后弹出指定页面消息的需求,微号帮平台提供了粉丝关注定时推送功能实现,公众平台提供了接口编程实现功能,均能实现关注公众号弹出指定消息,点击消息才能跳转到指定页面,微信规则不支持关注...
  • 关注公众号是所有客户都需要的一个功能,所以如何实现网页中不扫二维码,直接通过点击按钮的形式去关注公众号呢? 我们要通过获取一个uinID拼接地址实现跳转关注公众号,那么下面有2种获取他的办法。 第一种 1.登录...
  • 如果想要实现微信关注定时回复多条消息,可以用微号帮平台的粉丝关注定时推送功能实现,也可以用公众号平台提供的接口开发实现功能,均可以达到微信关注公众号后定时回复多条消息的效果。现微号帮平台全部功能注册...
  • 一、H5页面唤起关注公众号页面 上面已经说明如何判断用户是否已经关注公众号,那如何唤起关注页面,也就是如何跳转到关注页面引导用户关注呢,主要分为以下几个步骤: 1、登录微信公众平台 2、点击微信号头像右击...
  • 大概是为了给公众号引流吧,一些网站进行了扫描公众号二维码关注登录的操作 UML 图表 可以使用UML图表分析一下流程。 登录客户端登录服务端微信服务端手机微信1....携带用户信息通过公众号平台配置的链接进行回调7...
  • 在这里要告诉大家的是个人公众号申请是完全免费的,而企业公众号每年是需要缴纳认证费用的。而且需要注意的是不同类型的公众号申请流程也是不一样的,下面我们简单先来链接一下微信公众号几种不同的分类。点击下方...
  • 公司需要做一款对接公众号引流关注获取幸运码抽奖的程序
  • 微信跳转到关注公众号万能链接

    万次阅读 2018-09-28 09:14:53
    amp;__biz=MzU5MTMzMDcwNw==#wechat_redirect 这个链接事直接跳转到关注我们公众号的链接的 假如你们微信公众号平台对接微信得缴费什么的 https://payapp.weixin.qq.com/life/index?showwxpaytitle=1#wech...
  • 微信小程序支付后关注公众号

    千次阅读 2018-09-13 09:57:40
    微信小程序支付后自动关注公众号的部分心得体会: 1:小程序与公众号要绑定在开放平台同一主体下 2:小程序开通支付功能 3:小程序添加到微信支付商户号,在支付后配置该小程序下面输入支付后绑定的微信公众号 4...
  • 在自己网站上点击微信登录,网站自己弹出一个二维码、扫描二维码后弹出公众号的关注界面、只要一关注公众号网站自动登录、第二次扫描登录的时候网站直接登录。 大家可以体验一下 「随便找的一个网站」 前期准备 ...
  • 微信公众平台更新,为开发者提供UnionID机制经开发者反馈,由于同一公司下多个公众号之间需要用户帐号互通,微信开放平台提供了UnionID机制,来解决此问题。通过获取用户基本信息接口,开发者可通过OpenID来获取用户...
  • 业务场景是:判断当前登录用户是否已经关注指定的官方微信公众号,没有就指引用户关注。 微信公众号官方文档:https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Overview.html 详细步骤 一.公众号...
  • 对于很多做公众号的朋友来说,如果能够在粉丝关注公众号的时候收到消息通知,然后在粉丝关注的时候就立即与粉丝取得联系进行互动,这无疑是最佳的营销时机了。 但是由于微信官方是没有这个通知功能的,所以,最佳的...
  • 第三方浏览器打开微信的接口,微信只给部分合作平台开放了接口...功能实现后可以实现从手机浏览器打开微信并跳转到指定网页,该网页可以是你的个人二维码,可以是公众号二维码当然也可以直接跳转到公众号关注页面,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,902
精华内容 1,560
关键字:

关注公众号平台