PHP 企业微信推送应用消息并附带跳转连接

因业务需要,特此记录一下。

业务逻辑如下:

因为每次推送消息时有人数限制,所以就用了两个变量来接收处理。

//推送带链接的内容            
$content = '您一条消息,<a href="这里放链接">请查看</a>!';
            //获取推送对象
            $user = M('user')->select();
            if(!$user) return '没有可推送用户';
//因企业微信推送应用消息一次不能超过1000
            $userData = [];//用户标识数组,用户数量未超过一定数量
            $userDataArr = [];//用户标识数组,用户数量超过一定数量
            //推送到企业微信
            $url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token='.accessToken();
            foreach ($user as $item)
            {
                if (count($userData) < 1000)
                {
                    $userData[] = $item['企业微信用户标识字段'];
                }else{
                    $userDataArr[] = $userData;
                    $userData = [];
                }
            }
            if (!$userDataArr)
            {
                $userDataArr[] = $userData;
                $userData = [];
            }
            if ($userData)
            {
                $userDataArr[] = $userData;
            }
            if ($userDataArr)
            {
                foreach ($userDataArr as $value)
                {
                    $data_ = [
                        'touser' => implode('|',$value),
                        'msgtype' => 'text',
                        'agentid' => '应用ID',
                        'text' => [
                            'content' => $content,
                        ]
                    ];
                    $arr = https_request($url,json_encode($data_));
                }
            }

            return 'OK';

获取access_token函数,因为access_token值获取的频率不能过高,所以做了缓存处理:


/**
 * 获取access_token
 */
function accessToken()
{
    //获得access_token
    if(empty(Cache::get("ACCESS_TOKEN"))){
        $url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=企业微信APPID&corpsecret=应用密钥";
        $res = file_get_contents($url);
        $res = json_decode($res,1);
        if($res['errcode']!=0){
            var_dump($res);
            die;
        }
        $accessToken=$res['access_token'];
        Cache::set("ACCESS_TOKEN",$accessToken,3600);
    }else{
        $accessToken=Cache::get("ACCESS_TOKEN");
    }
    return $accessToken;
}

https请求函数:


/**
 * https请求
 * @param string $url
 * @param string $data
 * @return mixed
 */
function https_request($url,$data = null){
	$curl = curl_init();
	curl_setopt($curl, CURLOPT_URL, $url);
	curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
	curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
	if (!empty($data)){
		curl_setopt($curl, CURLOPT_POST, 1);
		curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
	}
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
	$output = curl_exec($curl);
	curl_close($curl);
	return $output;
}

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
您好!对于企业微信推送消息机器人的开发,可以使用企业微信提供的开放接口和机器人API来实现。 首先,您需要在企业微信后台创建一个机器人应用,并获取到相应的机器人API密钥。 然后,您可以使用开发语言(如Python、Java等)来编写代码,通过调用企业微信的机器人API来发送消息。具体的步骤如下: 1. 引入相关的网络请求库和JSON解析库。 2. 构造请求URL,将消息内容、接收者等参数作为请求的参数。 3. 发送HTTP POST请求到企业微信机器人API,将消息发送给指定的接收者。 4. 解析响应结果,判断消息发送是否成功。 示例代码(Python): ```python import requests import json def send_message(message, receiver): url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key={机器人API密钥}" payload = { "msgtype": "text", "text": { "content": message }, "touser": receiver } headers = { "Content-Type": "application/json" } response = requests.post(url, data=json.dumps(payload), headers=headers) result = response.json() if result["errcode"] == 0: print("消息发送成功!") else: print("消息发送失败:" + result["errmsg"]) # 调用发送消息函数 send_message("这是一条测试消息", "UserID1|UserID2") ``` 以上代码仅为示例,您需要替换`{机器人API密钥}`为您的机器人API密钥,并根据实际需求修改消息内容和接收者。 希望能对您有所帮助!如有更多问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cq林志炫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值