code: def send_news(self, fakeid, msgid):
          
          url = 'https://mp.weixin.qq.com/cgi-bin/singlesend?t=ajax-response'
          payload = {
              'lang': 'zh_CN',
              'f': 'json',
              'tofakeid': fakeid,
              'type': 10,
              'token': self.__token,
              'appmsgid': msgid,
              'app_id': msgid,
              'error': 'false',
              'ajax': 1,
              'random': random.random(),
          }
          headers = {
              'x-requested-with': 'XMLHttpRequest',
              'referer': 'https://mp.weixin.qq.com/cgi-bin/singlemsgpage?fromfakeid={fakeid}&msgid=&source=&count=20&t=wxm-singlechat&lang=zh_CN'.format(
                  fakeid=fakeid,
              ),
              'cookie': self.__cookies,
          }
          r = requests.post(url, data=payload, headers=headers)
  
          try:
              message = json.loads(r.text)
          except ValueError:
              raise NeedLoginError(r.text)
          try:
              if message['base_resp']['ret'] == 10700 or message['base_resp']['ret'] == -21:
                  raise ValueError('fake id not exist')
              if message['base_resp']['ret'] == 10705:
                  raise ValueError('message id not exist')
              if message['base_resp']['ret'] != 0:
                  raise NeedLoginError(r.text)
          except KeyError:
              raise NeedLoginError(r.text)
docs: 向指定用户发送图文消息 （必须从图文库里选取消息ID传入)
          :param fakeid: 用户的 UID (即 fakeid)
          :param msgid: 图文消息 ID
          :raises NeedLoginError: 操作未执行成功, 需要再次尝试登录, 异常内容为服务器返回的错误数据
          :raises ValueError: 参数出错, 具体内容有 ``fake id not exist`` 及 ``message id not exist``