shell脚本获取,python脚本发送。此篇文章需要有企业微信管理权限才能使用
1、企业微信(企业号)现在申请要企业验证,我申请的比较早当时不需要验证
2、crontab计划任务
3、python
4、个人微信加入企业中,个人微信关注企业号,然后把人员加入到部门,消息按部门发送
效果展示(因为微信API接口文本消息内容,最长不超过2048个字节,超过将截断)所以分四条发送
url-utf8.py url编码解码脚本
#!/bin/python
# -*- coding: utf-8 -*-
import urllib
import sys
rawurl = str(sys.argv[1])
url = urllib.unquote(rawurl)
print url
num.txt 发送消息每条消息取多少行
1,12p
13,25p
26,37p
38,50p
wxweibo.py 发送文本内容到企业微信应用的脚本
#!/usr/bin/python
#_*_coding:utf-8 _*_
__author__ = 'lvnian'
import urllib,urllib2
import json
import sys
reload(sys)
sys.setdefaultencoding('utf8')
def gettoken(corpid,corpsecret):
gettoken_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + corpsecret
try:
token_file = urllib2.urlopen(gettoken_url)
except urllib2.HTTPError as e:
print e.code
print e.read().decode("utf8")
sys.exit()
token_data = token_file.read().decode('utf-8')
token_json = json.loads(token_data)
token_json.keys()
token = token_json['access_token']
return token
def senddata(access_token,user,content):
send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + access_token
send_values = {
"touser":user , #企业号中的用户帐号,我这里按部门发送的,所以这个参数填错没关系。
"toparty":"3", #企业号中的部门id
"msgtype":"text", #发送的消息类型。
"agentid":"1000003", #企业号中应用的AgentId
"text":{
"content":content
},
"safe":"0"
}
send_data = json.dumps(send_values, ensure_ascii=False)
send_request = urllib2.Request(send_url, send_data)
response = json.loads(urllib2.urlopen(send_request).read())
print str(response)
if __name__ == '__main__':
user = str(sys.argv[1]) #第一个参数(第一个和第二参数没实际作用,但不能为空)
subject = str(sys.argv[2]) #第二个参数
content = str(sys.argv[3]) #第三个参数(需要发送的消息内容)
corpid = '企业微信管理-我的企业-就可看到此id' #CorpID是企业微信(原企业号)的标识
corpsecret = '企业微信管理-应用管理-打开对应应用就可看到此参数' #需要发送的应用Secret
accesstoken = gettoken(corpid,corpsecret)
senddata(accesstoken,user,content)
wxweibo.sh 执行脚本
#!/bin/bash
date=`date +%H:%M`
#下载热搜关键词前50页面并过滤热搜词和url
cd /tmp/weibo/ && wget -q https://s.weibo.com/top/summary/
grep "<a href=\"/weibo?" index.html|sed 's#^ *##;s/target="_blank"//'> /tmp/weibo/aa && cp aa ab
#对url编码解码并替换原来url
for i in `awk -F "[=|&]" '{print $3}' aa`
do
wz="`python /tmp/weibo/url-utf8.py $i`"
sed -i "s/$i/{$wz}/" ab
done
#删除和替换字符导出结果
sed 's/{//;s/}//;s#\/weibo#https://s.weibo.com#g;s/com/com\/weibo/g;s/#/%23/g;s/ //g;s/<a/<a /' ab >resou.txt
#分4次发送热搜词到公众号消息(1条消息限制最长2048个字节)
for i in `cat /tmp/weibo/num.txt`
do
nub=`echo "$i"|sed 's/p//'|tr "," "-"`
/bin/python /tmp/weibo/wxweibo.py 0 0 "[$date]微博热搜排名$nub关键词:
`sed -n $i /tmp/weibo/resou.txt`"
done
#删除临时文件
rm -rf index.html* aa ab
wxweibo.sh 执行
sh /tmp/weibo/wxweibo.sh
{u'invaliduser': u'0', u'errcode': 0, u'errmsg': u'ok'}
{u'invaliduser': u'0', u'errcode': 0, u'errmsg': u'ok'}
{u'invaliduser': u'0', u'errcode': 0, u'errmsg': u'ok'}
{u'invaliduser': u'0', u'errcode': 0, u'errmsg': u'ok'}
crontab 每小时0分定时发送
00 * * * * /tmp/weibo/wxweibo.sh
百度搜热也可以这样做,效果展示;因为百度链接长所以分5条消息发送
本文最后记录时间 2024-03-30
文章链接地址:https://me.jinchuang.org/archives/511.html
本站文章除注明[转载|引用|来源],均为本站原创内容,转载前请注明出处
文章链接地址:https://me.jinchuang.org/archives/511.html
本站文章除注明[转载|引用|来源],均为本站原创内容,转载前请注明出处
你好,我想转载了该篇博文,用于论坛交流可以吗?
个人娱乐用,可以转载的
谢谢大佬!