commit
13dbee3651
94
README.md
94
README.md
|
@ -93,6 +93,100 @@ $ret = send_to_wecom("推送测试\r\n测试换行", "企业ID③", "应用ID①
|
||||||
print_r( $ret );
|
print_r( $ret );
|
||||||
```
|
```
|
||||||
|
|
||||||
|
PYTHON版:
|
||||||
|
|
||||||
|
```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
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
使用实例:
|
||||||
|
|
||||||
|
```python
|
||||||
|
ret = send_to_wecom("推送测试\r\n测试换行", "企业ID③", "应用ID①", "应用secret②");
|
||||||
|
print( ret );
|
||||||
|
```
|
||||||
|
|
||||||
|
TypeScript 版:
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
import request from 'superagent'
|
||||||
|
|
||||||
|
async function sendToWecom(body: {
|
||||||
|
text: string
|
||||||
|
wecomCId: string
|
||||||
|
wecomSecret: string
|
||||||
|
wecomAgentId: string
|
||||||
|
wecomTouid?: string
|
||||||
|
}): Promise<{ errcode: number; errmsg: string; invaliduser: string }> {
|
||||||
|
body.wecomTouid = body.wecomTouid ?? '@all'
|
||||||
|
const getTokenUrl = `https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=${body.wecomCId}&corpsecret=${body.wecomSecret}`
|
||||||
|
const getTokenRes = await request.get(getTokenUrl)
|
||||||
|
const accessToken = getTokenRes.body.access_token
|
||||||
|
if (accessToken?.length <= 0) {
|
||||||
|
throw new Error('获取 accessToken 失败')
|
||||||
|
}
|
||||||
|
const sendMsgUrl = `https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=${accessToken}`
|
||||||
|
const sendMsgRes = await request.post(sendMsgUrl).send({
|
||||||
|
touser: body.wecomTouid,
|
||||||
|
agentid: body.wecomAgentId,
|
||||||
|
msgtype: 'text',
|
||||||
|
text: {
|
||||||
|
content: body.text,
|
||||||
|
},
|
||||||
|
duplicate_check_interval: 600,
|
||||||
|
})
|
||||||
|
return sendMsgRes.body
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
使用实例:
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
sendToWecom({
|
||||||
|
text: '推送测试\r\n测试换行',
|
||||||
|
wecomAgentId: '应用ID①',
|
||||||
|
wecomSecret: '应用secret②',
|
||||||
|
wecomCId: '企业ID③',
|
||||||
|
})
|
||||||
|
.then((res) => {
|
||||||
|
console.log(res)
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log(err)
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
其他版本的函数可参照上边的逻辑自行编写,欢迎PR。
|
其他版本的函数可参照上边的逻辑自行编写,欢迎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)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue