Wecom酱配置及示例
Wecom酱是一个通过企业微信向微信推送消息的解决方案。包括:
企业微信应用消息配置说明
优点:
- 一次配置,持续使用
- 配置好以后,只需要微信就能收消息,不再需要安装企业微信客户端
PS:消息接口无需认证即可使用,个人用微信就可以注册
第一步,注册企业
用电脑打开企业微信官网,注册一个企业
第二步,创建应用
注册成功后,点「管理企业」进入管理界面,选择「应用管理」 → 「自建」 → 「创建应用」
[创建应用'theseven.ftqq.com/20210208143228.png']
应用名称填入「Server酱」,应用logo到[这里theseven.ftqq.com/20210208142819.png
]下载,可见范围选择公司名。
[应用配置theseven.ftqq.com/20210208143327.png
]
创建完成后进入应用详情页,可以得到应用ID( agentid
),应用Secret( secret
)。
注意:secret
推送到手机端时,只能在企业微信客户端
中查看。
第三步,获取企业ID
进入「我的企业」页面,拉到最下边,可以看到企业ID③,复制并填到上方。
推送UID直接填 @all
,推送给公司全员。
第四步,推送消息到微信
进入「我的企业」 → 「微信插件」,拉到下边扫描二维码,关注以后即可收到推送的消息。
PS:如果出现接口请求正常,企业微信接受消息正常,个人微信无法收到消息
的情况:
- 进入「我的企业」 → 「微信插件」,拉到最下方,勾选 “允许成员在微信插件中接收和回复聊天消息”
- 在企业微信客户端 「我」 → 「设置」 → 「新消息通知」中关闭 “仅在企业微信中接受消息” 限制条件
第五步,通过以下函数发送消息:
PS:为使用方便,以下函数没有对 access_token
进行缓存。对于个人低频调用已经够用。带缓存的实现可查看 index.php
中的示例代码(依赖Redis实现)。
PHP版:
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;
}
使用实例:
$ret = send_to_wecom("推送测试\r\n测试换行", "企业ID", "应用secret", "应用ID");
print_r( $ret );
PYTHON版:
import json,requests
def send_to_wecom(text,wecom_cid,wecom_secret,wecom_aid,wecom_touid='@all'):
get_token_url = f"https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={wecom_cid}&corpsecret={wecom_secret}"
response = requests.get(get_token_url).content
access_token = json.loads(response).get('access_token')
if access_token and len(access_token) > 0:
send_msg_url = f'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={access_token}'
data = {
"touser":wecom_touid,
"agentid":wecom_aid,
"msgtype":"text",
"text":{
"content":text
},
"duplicate_check_interval":600
}
response = requests.post(send_msg_url,data=json.dumps(data)).content
return response
else:
return False
使用实例:
ret = send_to_wecom("推送测试\r\n测试换行", "企业ID", "应用secret", "应用ID");
print( ret );
私信发送器配置
基于在线搭建的PHP
服务,可进一步配置私信发送界面,参考serverchan-private-letter
源项目的 sc.php
文件是针对Server酱
开发的,需要针对Wecom酱
进行修改
最终效果参考本博客的私信发送页面——联系我
可能遇到的坑
消息换行失败,可使用%0D%0A
实现换行,参考消息换行。
感谢开源项目
Open Source Forever
5 条评论
这个博客也太好看了吧
谢谢夸奖
继续努力
占楼
一直给你留着的