注册和新建应用的过程就不细说了,现在企业微信申请不用认证任何信息,任意微信号就可以注册


新建应用后按如下截图找到几个信息


1.corpid  企业id

2.corpsecret 应用的secret

3.agentid  应用的agentid





发送信息也很好实现,首先获取token

token有个过期时间,用redis存储并设置过期时间,可以很方便的判断是否需要重新获取

获取到token之后就可以调用发送消息接口,具体参数可以看官方文档 接口文档


这里提供一个php的工具类

/**
 * 发送企业微信
 * @param $content    内容
 * @param $tokenName  token的key
 * @param $secret     应用secret
 * @param $agentId    应用agentId
 * @author WJ
 * @date 2019-12-18
 */
public function sendWXWork($content, $tokenName, $secret, $agentId)
{

    //使用redis存储token,设置一个超时时间,过期后重新获取

    $redis = new \Redis();
    $redis->connect('127.0.0.1', 6379);
    $redis->auth('****');

    $token = $redis->get($tokenName);
    if (empty($token)) {

        $curl = curl_init();

        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
        
        //换上你的corpid
        curl_setopt($curl, CURLOPT_URL, "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=****&corpsecret=" . $secret);

        $result = curl_exec($curl);
        curl_close($curl);

        $result = json_decode($result, true);

        if ($result['errcode'] === 0) {
            $token = $result['access_token'];
            $redis->set($tokenName, $token);
            $redis->expire($tokenName, $result['expires_in']);

        } else {
            return;
        }
    }


    //发送消息
    $url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=" . $token;

    $text_param = array(
        "touser" => "@all",
        "msgtype" => "text",
        "agentid" => $agentId,
        "text" => array("content" => $content)
    );
    $requestData = json_encode($text_param);


    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Content-Length:' . strlen($requestData)));
    curl_setopt($curl, CURLOPT_POSTFIELDS, $requestData);
    curl_setopt($curl, CURLOPT_HEADER, 1);
    curl_setopt($curl, CURLINFO_HEADER_OUT, true);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);

    //设置请求头
    $headers = array();
    $header[] = 'User-Agent: iMAG0'; //设置一个你的浏览器agent的header
    $header[] = 'token:Test'; //设置一个你的浏览器agent的header
    curl_setopt($curl, CURLOPT_HTTPHEADER, $header);

    curl_exec($curl);
    curl_close($curl);

}




本文以实现一个喝水助手为例



先来说一下linux的定时任务


首先通过 crontab  -e 命令新建定时任务,其实就是一个文本文档,格式如下


分        小时    日       月       星期     命令

0-59   0-23   1-31   1-12     0-6     command    


可以用特殊字符表示范围:

“*”代表取值范围内的数字
“/”代表”每”
“-”代表从某个数字到某个数字
“,”分开几个离散的数字



通过crontab  -l 可以查看当前所有的定时任务


最后通过curl命令访问写好的接口就大功告成了


喝水助手的代码如下

public function drink(){

    for($i = 1; $i <= 3; $i ++){
        $content = '现在是' . date("Y-m-d H:i:s", time()) . "\n\n该喝水了!!!\n\n喝水了!!!\n\n水了!!!\n\n了!!!\n\n!!!\n\n!!\n\n!";
        $this->sendWXWork($content, "drinkToken", "************", "************");
        sleep(2);
    }

}


定时任务设置如下

30 6 * * * curl 127.0.0.1/drink
30 8 * * * curl 127.0.0.1/drink
0 11 * * * curl 127.0.0.1/drink
0 13 * * * curl 127.0.0.1/drink
30 15 * * * curl 127.0.0.1/drink
0 17 * * * curl 127.0.0.1/drink
30 18 * * * curl 127.0.0.1/drink
0 21 * * * curl 127.0.0.1/drink






个人网站运营不易ヾ(◍°∇°◍)ノ゙如果有帮到你赞助一下吧

Kevin博客
  • 最新评论
  • 总共0条评论