php 微信公众号关注推送欢迎语

微信公众号开发,在开启服务器配制后,自动回复与自定义菜单将会失效,这时候就需要接口设置自动回复与公众号菜单,这里讲解用户关注公会总号后,自动回复欢迎语

首先服务器配置

在填写的服务器地址中(一般使用接口),增加接受数据的代码,如下

// 接收的数据流是xml数据格式
$xml  = file_get_contents("php://input");
// 此处xml转为数组会对象
$res = xmlToArray($xml);// 转换方法自行百度

接收的数据为xml格式,需转换为数组或json格式使用,转换方法,自行百度。

数据转换后,就可以拿到用户的基本信息

// 可以先用写入文件的方式,查看推送过来的数据
$myfile = fopen("push.txt", "a");
fwrite($myfile, "\r\n");
fwrite($myfile, json_encode($res));

// 推送数据中,包含用户openid,事件类型

$openid = $res['FromUserName'];

$event = $res['Event']; // 事件类型 subscribe -- 为关注事件,unsubscribe -- 为取消关注事件

拿到Event后,可以根据对应值做相应处理,我们这里讲 Event='subscribe' 即关注事件的处理

推送欢迎语

拿到事件后,做推送,代码如下

if ($event == 'subscribe') {
    // 关注事件
    $access_token = getAccessToken(); // 获得全局变量access_token,这里不做具体解释
    $url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token={$access_token}&openid={$openid}&lang=zh_CN";
    $response = file_get_contents($url); // 获得用户信息,如果欢迎语中需要显示当前用户的名称之类的信息,那么可以调用此接口获取
    
    // 推送欢迎语
    // 推送接口
    $push_url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token={$access_token}";
    // 推送数据
    $push_data = [
        'touser' => $openid,
        'msgtype' => 'text',
        'text' => [
            "content" => $content // 这里content为欢迎语的具体内容,可自行设置
        ],
    ];

    // 发送 post提交, 一般使用curl post提交
    post($push_url, json_encode($push_data, JSON_UNESCAPED_UNICODE));
}

其中获得access_token 这里不做详细介绍,可以参考另外一个文章 如何获取ACCESS_TOKEN

至此推送欢迎语完成,感觉有用的老铁,还不点个赞!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值