zoukankan      html  css  js  c++  java
  • 脱离微信客户端发送微信消息(二)

    Python版本:使用微信API发送微信消息

      本文代码借用朋友编写的成品代码,使用Python3编写,配合上一篇文章:《脱离微信客户端发送微信消息(一)》经过试验完全可以发送微信消息。

    文件:BaseData.py
    Python3代码:
    1 # -*- coding: utf-8 -*-
    2  
    3 corpid="XXXXXXX" # 设置-权限设置-部门-查看CorpID
    4 corpsecret="YYYYYYYYYY" # 设置-权限设置-部门-查看Secret
    5 Get_Token_Url="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid="+corpid+"&corpsecret="+corpsecret
    6 Send_Message = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token="

      

    文件:weixin.py
    Python3 代码:
     1 # -*- coding: utf-8 -*-
     2 import json
     3  
     4 import requests
     5  
     6 from BaseData import *
     7  
     8  
     9 class Token(object):
    10   def __init__(self, Get_Token_Url):
    11     """
    12     初始化
    13     :param Get_Token_Url:获取token的地址,来自BaseData中
    14     :return:
    15     """
    16     self.url = Get_Token_Url
    17     print (self.url)
    18  
    19   def get_token(self):
    20     """
    21     请求获取token的url,截取token并返回
    22     :return:返回token值
    23     """
    24     try:
    25       ret = requests.get(self.url).text
    26       return eval(ret)['access_token']
    27     except Exception as e:
    28       print (e)
    29  
    30  
    31 class Message:
    32   def __init__(self, content, msgtype='text', agentid=1, touser='@all'):
    33     """
    34     初始化发送信息的参数
    35     :param content: 消息内容
    36     :param msgtype: 消息类型,此时固定为:text
    37     :param agentid: 应用的id,整型
    38     :param touser: 成员ID列表(消息接收者,多个接收者用‘|’分隔)。特殊情况:指定为@all,则向关注该企业应用的全部成员发送
    39     :return:
    40     """
    41     self.content = content
    42     self.msgtype = msgtype
    43     self.agentid = agentid
    44     self.touser = touser
    45     self.token = Token(Get_Token_Url).get_token()
    46     self.param = {
    47       'touser': self.touser,
    48       'msgtype': self.msgtype,
    49       'agentid': self.agentid,
    50       'text': {"content": self.content}
    51     }
    52  
    53   def send_msg(self):
    54     """
    55     发送信息的方法
    56     :return:
    57     """
    58     url = Send_Message + self.token
    59     try:
    60       print ('There is Try:',url)
    61       print ("bodydata:"+json.dumps(self.param, ensure_ascii=False))
    62       r = requests.post(url, json.dumps(self.param, ensure_ascii=False))
    63       print("response:",r.content)
    64     except Exception as e:
    65       print (e)
    66  
    67  
    68 if __name__ == '__main__':
    69   touser1 = "具体用户名"   #该用户所在的组必须在这个应用的允许使用范围内
    70   content = 'There is Weixin MSG by XX.org'   #按理说应使用中文,但即使加了字母u,在发送请求的时候仍然会报错。
    71   print ("There is content")
    72   print (Message(content, touser=touser1).send_msg())
  • 相关阅读:
    Extjs4.x Ext.tree.Panel基本树控件的使用案例、源码
    Extjs4 autoload和iframe的取舍
    Extjs4 文件目录结构
    IIS7.5 配置MVC3.0 伪静态,不能访问html伪静态页面
    DB2存储过程模版
    C#后台调用跨域MVC服务,带Cookie验证
    基于SenchaTouch项目案例
    EF Code First DataAnnotations
    找不到方法:“Void System.Data.Objects.ObjectContextOptions.set_UseConsistentNullReferenceBehavior(Boolean)”。
    Babylon 3D engine (Silverlight)
  • 原文地址:https://www.cnblogs.com/kuzaman/p/6541841.html
Copyright © 2011-2022 走看看