前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微信推送消息遇到的坑 – 返回error code 40008,并且发送不成功[通俗易懂]

微信推送消息遇到的坑 – 返回error code 40008,并且发送不成功[通俗易懂]

作者头像
全栈程序员站长
发布2022-06-28 17:12:16
1.4K0
发布2022-06-28 17:12:16
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

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高,啥的。。对吧。很自然,看到腾讯的大神们提供的例子如下,很明显怎么使用,这都不用说。

代码语言:javascript
复制
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()的操作就可以了:

代码语言:javascript
复制
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

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/132689.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年6月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档