微信推送消息遇到的坑 - 返回error code 40008,并且发送不成功

api 文档就是这里啦。

https://work.weixin.qq.com/api/doc#90000/90135/90236/%E6%96%87%E6%9C%AC%E6%B6%88%E6%81%AF

 

我感觉腾讯并没有把这个error code做得很细,反之,非常笼统,让你看到这个err不知所措不晓得到底啥问题。


我这边要用微信接收系统发出来的alert,比如哪个服务器cpu负荷高,io高,啥的。。对吧。很自然,看到腾讯的大神们提供的例子如下,很明显怎么使用,这都不用说。

query_string = 
{
   "touser" : "UserID1|UserID2|UserID3",
   "toparty" : "PartyID1|PartyID2",
   "totag" : "TagID1 | TagID2",
   "msgtype" : "text",
   "agentid" : 1,
   "text" : {
       "content" : "你的快递已到,请携带工卡前往邮件中心领取。\n出发前可查看<a href=\"http://work.weixin.qq.com\">邮件中心视频实况</a>,聪明避开排队。"
   },
   "safe":0,
   "enable_id_trans": 0,
   "enable_duplicate_check": 0,
}

但是这个json对象,直接用python的requset发送过去,不管我怎么改,它就是不对,永远40008。。

然后我用postman调试,生成例子代码,发现在发送之前,这个json对象被转义成纯文本了。。。

所以我这边在发送之前,对它做个json.dump()的操作就可以了:

def sendWechatAlertMsg(alert):
    token = getWechatToken()
    url = getWechatAPIURL()

    querystring = {'access_token': token}
    payload = {
        "touser": "somebody",
        "msgtype": "text",
        "agentid": "123456789",
        "text": {
            "content": "You jump, I jump, we all jump, you all family jump!!!",
        },
        "safe": 0,
        "enable_id_trans": 0,
        "enable_duplicate_check": 0,
    }
    headers = {
        'cache-control': 'no-cache'
    }


    # 这里加一个   json.dumps()就可以了。
    response = requests.request(
        'POST', url, data=json.dumps(payload), headers=headers, params=querystring)
    
    if response.json().get('errcode') > 0:
        logger.error('failed send to wechat, err msg: ' +
                     response.json().get('errmsg'))
        return False
    else:
        logger.error('successfully sent to weChat')
        return True

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于企业微信推送消息机器人的开发,可以使用企业微信提供的开放接口和机器人API来实现。 首先,您需要在企业微信后台创建一个机器人应用,并获取到相应的机器人API密钥。 然后,您可以使用开发语言(如Python、Java等)来编写代码,通过调用企业微信的机器人API来发送消息。具体的步骤如下: 1. 引入相关的网络请求库和JSON解析库。 2. 构造请求URL,将消息内容、接收者等参数作为请求的参数。 3. 发送HTTP POST请求到企业微信机器人API,将消息发送给指定的接收者。 4. 解析响应结果,判断消息发送是否成功。 示例代码(Python): ```python import requests import json def send_message(message, receiver): url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key={机器人API密钥}" payload = { "msgtype": "text", "text": { "content": message }, "touser": receiver } headers = { "Content-Type": "application/json" } response = requests.post(url, data=json.dumps(payload), headers=headers) result = response.json() if result["errcode"] == 0: print("消息发送成功!") else: print("消息发送失败:" + result["errmsg"]) # 调用发送消息函数 send_message("这是一条测试消息", "UserID1|UserID2") ``` 以上代码仅为示例,您需要替换`{机器人API密钥}`为您的机器人API密钥,并根据实际需求修改消息内容和接收者。 希望能对您有所帮助!如有更多问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值