from datetime import datetime
import time
import threading
from queue import Queue
from queue import Empty
import pymssql
from http_utils import *
class UserMsgServer(object):
def init(self):
self.connect = pymssql.connect('xxxxxx:6229', 'user_name', 'pass', 'HD_Common') #建立连接
if self.connect:
print("连接成功!")
self.appid = None;
self.secret_abs = None;
self.secret_kh = None;
self.agentid = None;
self.token_abs = None;
self.token_kh = None;
def getToken(self):
url = f"https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={self.appid}&corpsecret={self.secret_abs}"
result = httpGet(url)
self.token_abs = result["access_token"]
print(self.token_abs)
url = f"https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={self.appid}&corpsecret={self.secret_kh}"
result = httpGet(url)
self.token_kh = result["access_token"]
print(self.token_kh)
pass
#发送给内部员工
def send(self, userId, conent):
url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=" + self.token_abs
print(url)
data = {
"touser" : userId,
"toparty" : "",
"totag" : "",
"msgtype" : "text",
"agentid" : self.agentid,
"text" : {
"content" : conent
},
"safe":0,
"enable_id_trans": 0,
"enable_duplicate_check": 0,
"duplicate_check_interval": 1800
}
result = httpPost(url, data)
print(result)
return result["errcode"]
pass
#发送给客户
def send1(self, userId, sender, conent):
url = "https://qyapi.weixin.qq.com/cgi-bin/externalcontact/add_msg_template?access_token=" + self.token_kh + "&debug=1"
print(url)
data = {
"chat_type": "single",
"external_userid": [
userId
],
"sender": sender,
"text": {
"content": conent
}
}
result = httpPost(url, data)
print(result)
return result["errcode"]
pass
def sendMsg(self):
cursor = self.connect.cursor() #创建一个游标对象,python里的sql语句都要通过cursor来执行
sql = "select IndexId,UserId,Content,UserType from W_UserMessage where state = 0 and (ISNULL(PlanFlag,0)= 0 or (ISNULL(PlanFlag,0)= 1 and PlanTime <= GETDATE()))"
cursor.execute(sql) #执行sql语句
row = cursor.fetchone() #读取查询结果,
index = 1
while row: #循环读取所有结果
if index == 1:
self.getToken(); #获取token
id = row[0]
userId = row[1]
content = row[2]
userType = row[3]
print("发送消息给"+ userId +",content=" + content)
if userType == "guest":
users = userId.split('|');
sender = "";
if len(users) > 1:
userId = users[0];
sender = users[1];
result = self.send1(userId, sender, content)
self.updateMsg(id, result)
else:
result = self.send(userId,content)
self.updateMsg(id, result)
row = cursor.fetchone()
index = index + 1
time.sleep(1)
def updateMsg(self,id, result):
print("result")
print(result);
cursor = self.connect.cursor()
if result == 0:
cursor.execute(f"update W_UserMessage set state=1 where IndexId={id}")
else:
cursor.execute(f"update W_UserMessage set state=-1 where IndexId={id}")
self.connect.commit() #提交
# 每n秒执行一次
def job(self):
while True:
#print(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
try:
self.sendMsg()
time.sleep(3)
except Exception as reason:
print(reason)
userMsgServer = UserMsgServer()
userMsgServer.init()
userMsgServer.appid = "wwe72868b229a****"
userMsgServer.secret_abs = "sGbP3HiG2e4ciZFuqyiHlAxnHvmY_Xlku8B7******"
userMsgServer.secret_kh = "Xw24GyBQCDj_IEJL7Sv1Sd1eSRGUJLo*******"
userMsgServer.agentid = 1000012
userMsgServer.job()
原文地址:https://blog.csdn.net/gdgztt/article/details/134725665
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_24356.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。