docs: def send_text_card(self, agent_id, user_ids, title, description, url, btntxt='详情',
                         party_ids='', tag_ids=''):
          """ 文本卡片消息
  
          https://work.weixin.qq.com/api/doc#90000/90135/90236/文本卡片消息
  
          请求示例：
          {
             "touser" : "UserID1|UserID2|UserID3",
             "toparty" : "PartyID1 | PartyID2",
             "totag" : "TagID1 | TagID2",
             "msgtype" : "textcard",
             "agentid" : 1,
             "textcard" : {
                  "title" : "领奖通知",
                  "description" : "<div class=\"gray\">2016年9月26日</div> <div class=\"normal\">恭喜你抽中iPhone 7一台，
                      领奖码：xxxx</div><div class=\"highlight\">请于2016年10月10日前联系行政同事领取</div>",
                  "url" : "URL",
                  "btntxt":"更多"
             }
          }
  
          特殊说明：
          卡片消息的展现形式非常灵活，支持使用br标签或者空格来进行换行处理，也支持使用div标签来使用不同的字体颜色，
          目前内置了3种文字颜色：灰色(gray)、高亮(highlight)、默认黑色(normal)，将其作为div标签的class属性即可，
          具体用法请参考上面的示例。
  
          :param agent_id: 必填，企业应用的id，整型。可在应用的设置页面查看。
          :param user_ids: 成员ID列表（消息接收者，多个接收者用‘|’分隔，最多支持1000个）。
          :param title: 标题，不超过128个字节，超过会自动截断。
          :param description: 必填，描述，不超过512个字节，超过会自动截断
          :param url: 必填，点击后跳转的链接。
          :param btntxt: 按钮文字。 默认为“详情”， 不超过4个文字，超过自动截断。
          :param party_ids: 部门ID列表。
          :param tag_ids: 标签ID列表。
          """
          return self.send(
              agent_id,
              user_ids,
              party_ids,
              tag_ids,
              msg={
                  'msgtype': 'textcard',
                  'textcard': {
                      'title': title,
                      'description': description,
                      'url': url,
                      'btntxt': btntxt,
                  },
              }
          )