微信企业号发送信息

来源:互联网 发布:minix3.3.0源码 编辑:程序博客网 时间:2024/04/30 01:48

需要去申请一个企业微信,然后新建一个应用,记住图中红色区域的字符串,代码里要用到

微信企业号官网:https://work.weixin.qq.com/wework_admin/loginpage_wx?from=myhome_qyh_redirect&ref_from=myhome_baidu



 python代码如下:******用自己应用的secret代替

#!/usr/bin/python# coding: utf-8import urllib, urllib2import jsonimport sysimport osimport timeimport datetimedef get_unixtime_now():    dtime = datetime.datetime.now()    unix_time = time.mktime(dtime.timetuple())    return unix_timedef gettoken_from_qq(corpid, corpsecret, pid):    gettoken_url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=" + corpid + "&corpsecret=" + corpsecret    print gettoken_url    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")    filepath = "./%s_%s" % (corpid, corpsecret)    print filepath    token_json = json.loads(token_data)    token_json.keys()    token = token_json["access_token"]    expires_in = token_json["expires_in"]    errcode = token_json["errcode"]    errmsg = token_json["errmsg"]    token_file = open(filepath, "wb")    expires_time = expires_in + get_unixtime_now() - 200    try:        qqstr = "{\"QQ\":"        token_file.write(qqstr)        token_file.write(token_data)        spdbstr = ",\"SPDB\":{\"expires_time\":\"%.0f\"}}" % (expires_time)        token_file.write(spdbstr)    finally:        token_file.close()    return (token, expires_in, errcode, errmsg)def gettoken_from_file(corpid, corpsecret, pid):    filepath = "./%s_%s" % (corpid, corpsecret)    print filepath    if not os.path.exists(filepath):        return ("", 0, "except error", "except error", 0)    token_file = open(filepath, "rb")    try:        token_data = token_file.read();        token_json = json.loads(token_data)        token_json.keys()        token = token_json["QQ"]["access_token"]        expires_in = token_json["QQ"]["expires_in"]        errcode = token_json["QQ"]["errcode"]        errmsg = token_json["QQ"]["errmsg"]        expires_time = token_json["SPDB"]["expires_time"]    except:        return ("", 0, "except error", "except error", 0)    finally:        token_file.close()    return (token, expires_in, errcode, errmsg, expires_time)def senddata(access_token, user, content, appid, pid):    send_url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=" + access_token    send_values = {        "touser": user,        "toparty": "1",        "msgtype": "text",        "agentid": appid,        "text": {            "content": content        },        "safe": "0"    }    now = datetime.datetime.now()    dt = now.strftime("%Y%m%d %H:%M:%S.") + now.strftime('%f')[:3]    print "P=%08d %s SENDVALUE=(%s)" % (pid, dt, send_values)    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())    response.keys()    errcode = response["errcode"]    errmsg = response["errmsg"]    now = datetime.datetime.now()    dt = now.strftime("%Y%m%d %H:%M:%S.") + now.strftime('%f')[:3]    print "P=%08d  %s RESPONSE=(%s)" % (pid, dt, str(response))    return (errcode, errmsg);if __name__ == "__main__":    reload(sys)    content = u"你好test"    appid=1000002    user="@all"    corpid = "******"    corpsecret = "*****************************"    pid = 1234  #anyway    expires_time = 0    sys.setdefaultencoding('utf-8')    (accesstoken, expires_in, errcode, errmsg, expires_time) = gettoken_from_file(corpid, corpsecret, pid)    if accesstoken == "":        print "accesstoken gettoken_form_file is null!!"        print "Get new token from QQ,because token is nul"        (accesstoken, expires_in, errcode, errmsg) = gettoken_from_qq(corpid, corpsecret, pid)    else:        unix_time = int(get_unixtime_now())        vi_expires_time = int(expires_time)        print "unix_time=%ld diff expires_time=%ld" % (unix_time, vi_expires_time)        if unix_time > vi_expires_time:            print "accesstoken expiretims differ: now=%ld > last expirestime =%ld" % (unix_time, vi_expires_time)            print "Get new token from QQ,because expire time"            (accesstoken, expires_in, errcode, errmsg) = gettoken_from_qq(corpid, corpsecret, pid)        else:            print "Get token from file "    print "accesstoken=%s" % (accesstoken)    print "expires_in=%s" % (expires_in)    print "errcode=%s" % (errcode)    print "errmsg=%s" % (errmsg)    print "expires_time=%s" % (expires_time)    print "unixtime=%.0f" % (get_unixtime_now())    (errcode, errmsg) = senddata(accesstoken, user, content, appid, pid)    print "RESPONSE errcode=%s" % (errcode)    print "RESPONSE errmsg=%s" % (errmsg)    # errcode = 40001    # 40001 invalid credential, access_token is invalid or not latest    # 42001 access_token expired    if errcode == 42001 or errcode == 40001:        print "Get new token from QQ,because 42001 or 40001"        (accesstoken, expires_in, errcode, errmsg) = gettoken_from_qq(corpid, corpsecret, pid)        (errcode, errmsg) = senddata(accesstoken, user, content, appid, pid)    print "RESPONSE errcode=%s" % (errcode)    print "RESPONSE errmsg=%s" % (errmsg)




阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 开户行联行号 银行开户许可证 银行卡开户行查询 金莹开户送体验金88元网站 新开户送20元体验金 自助申请开户即送38元体验金 金莹开户送体验金元网站 开户银行什么意思 怎么查开户行 新开户送88元体验金 对公账户开户流程 开户行怎么查 新开户送88体验金 开户行是什么 银行开户行查询 期货公司开户 银行卡开户行怎么查 开户送体验金网站大全 开户送白菜无需申请 新公司社保开户 企业社保开户 社保怎么开户 开户送18元体验金 现货在哪开户 大宗交易开户 同花顺网上开户可靠吗 国金网上开户 宽带开户多少钱 如何期货开户 现货农产品开户 现货开户哪家好 现货网上开户 贵金属怎样开户 网上贵金属开户 企业开户流程 原油开户要多少钱 商品现货开户 现货贵金属开户 长江证券开户 怎么炒股 炒股流程