20210804更新:方糖最新推出了Wecom酱,Wecom酱与Server酱·Turbo版同属于方糖推送生态,但区别在于Wecom酱是可以自行搭建的开源推送方案,并且同时支持服务器、腾讯云函数、docker等多种方式部署,强烈安利噢🤩

项目地址:https://github.com/easychen/wecomchan

由于Server酱·Turbo版没氪金的话会有一些限制,尤其是每日发送数量的限制较为严格,仅为5条/天,有时会不够用,既然这样的话,那我们动手搭建一个属于自己的Server酱吧!

Code

<?php

$corpid = $_REQUEST['corpid']; //企业id
$corpsecret = $_REQUEST['corpsecret']; //应用secret
$agentid = $_REQUEST['agentid']; //应用id

// 如果只有自己使用,可以把参数直接写在这里。
// $corpid = '';
// $corpsecret = '';
// $agentid = '';

$title = $_REQUEST['title']; //消息title
$description = $_REQUEST['description']; //消息内容
$description = str_replace(PHP_EOL, '<br>', $description);
$url = $_REQUEST['url']; //消息跳转url

if(!$corpid or !$corpsecret or !$agentid){
    exit("canshu buquan");
}

//获取access_token
$response = CurlGet("https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$corpid&corpsecret=$corpsecret","","");

$access_token = json_decode($response)->access_token;
if(!$access_token){
    exit("canshu cuowu");
}else{

    $json = '{"touser":"@all","msgtype":"textcard","agentid":"","textcard":{"title":"","description":"","url":"","btntxt":"更多"},"safe":1,"enable_id_trans":0,"enable_duplicate_check":0}';
    $json = json_decode($json);

    $json->agentid = $agentid;
    $json->textcard->title = $title ? $title : '无标题';
    $json->textcard->description = $description ? $description : '无内容';

    $json->textcard->url = $url ? $url : 'URL';

    echo CurlPost("https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$access_token","", json_encode($json));
}

function CurlGet($url,$cookies = "",$UserAgent = "")
{
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
        curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );
    curl_setopt($curl, CURLOPT_URL, $url);   
        curl_setopt($curl, CURLOPT_REFERER, '');
        curl_setopt($curl, CURLOPT_COOKIE, $cookies);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
    if ($UserAgent != "") {
        curl_setopt($curl, CURLOPT_USERAGENT, $UserAgent);
    }
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $response = curl_exec($curl);
    curl_close($curl);
    return $response;
}

function CurlPost($url, $cookies="", $post_data="", $headers=array(), $refer="", $UserAgent = '')
{
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
        curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );
    curl_setopt($curl, CURLOPT_URL, $url);   
    curl_setopt($curl, CURLOPT_USERAGENT, $UserAgent);
        curl_setopt($curl, CURLOPT_COOKIE, $cookies);
        curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    if ($refer != '') {
        curl_setopt($curl, CURLOPT_REFERER, $refer);
    }
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
    $response = curl_exec($curl);
    curl_close($curl);
    return $response;
}

企业微信配置说明

注册企业

用电脑打开企业微信官网,注册一个企业,可以得到企业ID,即调用参数中的corpid

创建应用

注册成功后,点「管理企业」进入管理界面,选择「应用管理」 → 「自建」 → 「创建应用」

应用名称填入「Server酱」,应用 logo 到这里下载,这两项也可以自定义,可见范围选择公司名。

创建完成后进入应用详情页,可以得到 AgentIDSecret,前者即调用参数中的agentid,后者即调用参数中的corpsecret

获取企业 ID

进入「我的企业」页面,拉到最下边,可以看到企业 ID,复制并填到上方。

推送消息到微信

进入「我的企业」 → 「微信插件」,拉到下边扫描二维码,关注以后即可收到推送的消息。

调用示例

http://example.com/server.php?corpid=xxx&corpsecret=xxx&agentid=xxx&title=title&description=desc&url=url

默认的消息类型为文本卡片消息,更多类型可参考企业微信 API 文档自定义。

如果只有自己使用的话,可以把参数直接写在代码里,调用时就不再需要传递corpidcorpsecret以及agentid等参数:

http://example.com/server.php?title=title&description=desc&url=url

 

最后修改:2024 年 07 月 23 日
如果觉得我的文章对你有用,请随意赞赏