全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworksBGVM服务器IP归属甄别会员请立即修改密码美国地址
查看: 13410|回复: 47

[疑问] MJJ专用server酱 企业微信通道PHP版

  [复制链接]
发表于 2021-2-10 12:18:02 | 显示全部楼层 |阅读模式
本帖最后由 红A 于 2021-2-10 13:41 编辑

相信大家都用过或者听说过server酱
因为微信发布公告将在4月底下线模板消息,Server酱开发了以企业微信为主的多通道新版。旧版将在4月后下线。

这个企业微信是随便都可以注册的,且稍微操作后微信app端也可以收到推送。
而且server酱的服务是有一些限制的,那我们就不如自己整一个推送通道。没有每分钟最多1条,免费版每天5条的限制。

第一步呢要先注册企业微信,我们直接看server酱的教程,记下教程里的应用ID( agentid ),应用Secret( secret ),企业ID。
我把教程复制到石墨了,server酱的还需要登录才能看。https://shimo.im/docs/38dpjtwWtRRVQ6Wy


代码比较简陋,仅仅是能用的程度,希望大佬们可以开发出更加完善的版本
比如企业微信支持很多种消息,我只写了卡片消息一种
企业微信的api文档:https://work.weixin.qq.com/api/doc/90000/90135/90236



访问时带上参数就行啦,get post都可以。
如 http://example.com/server.php?corpid=xxx&corpsecret=xxx&agentid=xxx&title=title&description=desc&url=url

效果图
微信图片_20210210123057.png (20.08 KB, 下载次数: 3)




最后是代码
  1. <?php

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

  5. //如果就自己用,可以把参数写到这里。
  6. //$corpid = '';
  7. //$corpsecret = '';
  8. //$agentid = ;


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

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


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

  18. $access_token = json_decode($response)->access_token;
  19. if(!$access_token){
  20.     exit("canshu cuowu");
  21. }else{

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

  24.     $json->agentid = $agentid;
  25.     $json->textcard->title = $title ? $title : '无标题';
  26.     $json->textcard->description = $description ? $description : '无内容';
  27.    
  28.     $json->textcard->url = $url ? $url : 'URL';

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





  31. function CurlGet($url,$cookies = "",$UserAgent = "")
  32. {
  33.     $curl = curl_init();
  34.     curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
  35.         curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );
  36.     curl_setopt($curl, CURLOPT_URL, $url);     
  37.         curl_setopt($curl, CURLOPT_REFERER, '');
  38.         curl_setopt($curl, CURLOPT_COOKIE, $cookies);
  39.     curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
  40.     if ($UserAgent != "") {
  41.         curl_setopt($curl, CURLOPT_USERAGENT, $UserAgent);
  42.     }
  43.     curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
  44.     curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
  45.     curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  46.     $response = curl_exec($curl);
  47.     curl_close($curl);
  48.     return $response;
  49. }

  50. function CurlPost($url, $cookies="", $post_data="", $headers=array(), $refer="", $UserAgent = '')
  51. {

  52.     $curl = curl_init();
  53.     curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
  54.         curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );
  55.     curl_setopt($curl, CURLOPT_URL, $url);     
  56.     curl_setopt($curl, CURLOPT_USERAGENT, $UserAgent);
  57.         curl_setopt($curl, CURLOPT_COOKIE, $cookies);
  58.         curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
  59.     if ($refer != '') {
  60.         curl_setopt($curl, CURLOPT_REFERER, $refer);
  61.     }
  62.     curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
  63.     curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
  64.     curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  65.     curl_setopt($curl, CURLOPT_POST, 1);
  66.     curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
  67.     $response = curl_exec($curl);
  68.     curl_close($curl);
  69.     return $response;
  70. }
复制代码
发表于 2021-2-18 10:55:01 | 显示全部楼层
测试通过,很好用。
发表于 2021-2-10 14:24:14 | 显示全部楼层
红A 发表于 2021-2-10 14:16
是嘛...我还是特意搜索过没有相关帖子再发的呀,看来是我没有搜到

楼主这个挺好的。我也找过,没找到。。倒是有人做了个API模仿SERVER酱。让别人用它的API。。。

MJJ自建才是王道。。。
 楼主| 发表于 2021-2-10 13:37:48 | 显示全部楼层
netsky 发表于 2021-2-10 13:34
配置了怎么用,直接访问提示canshu buquan

访问的时候带上参数

corpid //企业id
corpsecret //应用secret
agentid  //应用id

title //消息title
description //消息内容
url //消息跳转url
发表于 2021-2-10 12:18:42 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2021-2-10 12:27:54 | 显示全部楼层

推送消息吧
 楼主| 发表于 2021-2-10 12:29:27 | 显示全部楼层

推送通知消息用的呀,可以直接推送到微信
发表于 2021-2-10 12:32:02 | 显示全部楼层
不错~~~用了这个就不用SERVER酱了。搭在自己主机就i行了
发表于 2021-2-10 12:37:52 | 显示全部楼层
绑定,研究一下怎么用
发表于 2021-2-10 12:53:46 | 显示全部楼层
战略性马克


​​​​​​​
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2022-6-30 10:09 , Processed in 0.090903 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表