添加php在线服务搭建版本

This commit is contained in:
Easy 2021-06-22 13:21:58 +08:00
parent 08fc56faeb
commit fbe08a0d97
3 changed files with 76 additions and 9 deletions

12
ONLINE.md Normal file
View File

@ -0,0 +1,12 @@
# 在线服务搭建指南(PHP版)
## 安装条件
- PHP7.4+
- 可访问外部网络的运行环境
## 安装说明
1. 用编辑器打开 `index.php`,按提示修改头部 define 的值( sendkey自己随意写其他参见企业微信配置文档
1. 将 `index.php` 上传运行环境
1. 通过 `http://指向运行环境的域名/?sendkey=你设定的sendkey&text=你要发送的内容` 即可发送内容

View File

@ -1,6 +1,10 @@
# Wecom酱
通过企业微信向微信推送消息(配置说明&推送函数)。
通过企业微信向微信推送消息的解决方案。包括:
1. 配置说明(本页下方)
2. 推送函数(支持多种语言,见本页下方)
3. 自行搭建的在线服务源码 [查看搭建说明](ONLINE.md)
## 企业微信应用消息配置说明
@ -46,6 +50,14 @@ PS消息接口无需认证即可使用个人用微信就可以注册
![](https://theseven.ftqq.com/20210208144808.png)
PS如果出现`接口请求正常,企业微信接受消息正常,个人微信无法收到消息`的情况:
1. 进入「我的企业」 → 「[微信插件](https://work.weixin.qq.com/wework_admin/frame#profile/wxPlugin)」,拉到最下方,勾选 “允许成员在微信插件中接收和回复聊天消息”
![](https://img.ams1.imgbed.xyz/2021/06/01/HPIRU.jpg)
2. 在企业微信客户端 「我」 → 「设置」 → 「新消息通知」中关闭 “仅在企业微信中接受消息” 限制条件
![](https://img.ams1.imgbed.xyz/2021/06/01/HPKPX.jpg)
#### 第五步,通过以下函数发送消息:
PHP版
@ -179,14 +191,7 @@ sendToWecom({
其他版本的函数可参照上边的逻辑自行编写欢迎PR。
## 注解
出现`接口请求正常,企业微信接受消息正常,个人微信无法收到消息`
1. 进入「我的企业」 → 「[微信插件](https://work.weixin.qq.com/wework_admin/frame#profile/wxPlugin)」,拉到最下方,勾选 “允许成员在微信插件中接收和回复聊天消息”
![](https://img.ams1.imgbed.xyz/2021/06/01/HPIRU.jpg)
2. 在企业微信客户端 「我」 → 「设置」 → 「新消息通知」中关闭 “仅在企业微信中接受消息” 限制条件
![](https://img.ams1.imgbed.xyz/2021/06/01/HPKPX.jpg)

50
index.php Normal file
View File

@ -0,0 +1,50 @@
<?php
define('SENDKEY', 'set_a_sendkey');
define('WECOM_CID', '企业微信公司ID');
define('WECOM_SECRET', '企业微信应用Secret');
define('WECOM_AID', '企业微信应用ID');
define('WECOM_TOUID', '@all');
if (strlen(@$_REQUEST['sendkey']) < 1
|| strlen(@$_REQUEST['text']) < 1 || @$_REQUEST['sendkey'] != SENDKEY
) {
die('bad params');
}
header("Content-Type: application/json; charset=UTF-8");
echo send_to_wecom(@$_REQUEST['text'], WECOM_CID, WECOM_SECRET, WECOM_AID, WECOM_TOUID);
function send_to_wecom($text, $wecom_cid, $wecom_secret, $wecom_aid, $wecom_touid = '@all')
{
$info = @json_decode(file_get_contents("https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=".urlencode($wecom_cid)."&corpsecret=".urlencode($wecom_secret)), true);
if ($info && isset($info['access_token']) && strlen($info['access_token']) > 0) {
$access_token = $info['access_token'];
$url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token='.urlencode($access_token);
$data = new \stdClass();
$data->touser = $wecom_touid;
$data->agentid = $wecom_aid;
$data->msgtype = "text";
$data->text = ["content"=> $text];
$data->duplicate_check_interval = 600;
$data_json = json_encode($data);
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
@curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($ch);
return $response;
}
return false;
}