收藏
回答

对话能力取消群发任务接口是不是文档描述有误?

按照文档说明调用与传参

POST https://api.weixin.qq.com/cgi-bin/guide/cancelguidemassendjob?access_token=ACCESS_TOKEN
{
    "task_id":1332414111522783232
}


但是返回值总是

{
    "errcode": 40097,
    "errmsg": "invalid args hint: [AFgfT0I2e-bSV1Xa] rid: 5fae055e-165941e5-16ffd675"
}




回答关注问题邀请回答
收藏

3 个回答

  • Summer✨
    Summer✨
    2020-11-13

    你好,请检查

    taskname 超长

    remark 超长

    pushtime超过30天

    openid超过5000个

    素材数量超过3个

    素材word超长

    小程序卡片素材appid为空、title为空、非法

    等等这些参数是否符合。

    2020-11-13
    有用 1
    回复 2
    • LZY
      LZY
      2022-05-31
      您好,请问对话能力中添加群发任务的客户数量openid一次最多能添加多少个?有数量限制吗
      2022-05-31
      回复
    • LZY
      LZY
      2022-06-01
      可以理解为通过接口添加群发任务时,openID参数最大可以为15000个吗?还是5000个?
      2022-06-01
      回复
  • 社区技术运营专员--许涛
    社区技术运营专员--许涛
    2020-11-13

    你好,

    详细请参考:https://developers.weixin.qq.com/doc/offiaccount/Shopping_Guide/task-account/shopping-guide.cancelGuideMassendJob.html

    2020-11-13
    有用
    回复 1
    • 烟斗
      烟斗
      2020-11-13
      我这边确定传递过去的json参数无误,但是总是返回参数错误
      2020-11-13
      回复
  • 烟斗
    烟斗
    2020-11-26

    经过与官方的沟通,发现“取消群发任务接口”没有问题,产生该问题的根源是“获取群发任务列表”的接口:

    shopping-guide.getGuideMassendJobList


    该接口返回的数据示例如下

    {
        "errcode": 0,
        "errmsg": "OK",
        "list": [
            {
                "task_id": 1332519773019865088,
                "create_time": 1589016638,
                "update_time": 1589016638,
                "push_time": 1589010582,
                "finish_time": 0,
                "task_name": "testtask_name111",
                "task_remark": "testtask_remark111",
                "material": [
                    {
                        "type": 1,
                        "word": "testword"
                    },
                    {
                        "type": 3,
                        "pic_url": "http://mmbiz.qpic.cn/mmbiz_png/pHhTMtqk90rHY17p2cOXN9uhxMLpugicrGmYpljlNuoMbEjDib1S1nAcib3CC4qHOBqHtlOPYGP6OCuQpL5NDyUUA/0"
                    },
                    {
                        "type": 49,
                        "title": "test_title",
                        "path": "",
                        "appid": "xxxxxxxx",
                        "pic_url": "http://mmbiz.qpic.cn/mmbiz_png/pHhTMtqk90rHY17p2cOXN9uhxMLpugicrGmYpljlNuoMbEjDib1S1nAcib3CC4qHOBqHtlOPYGP6OCuQpL5NDyUUA/0"
                    }
                ],
                "buyer_info": [
                    {
                        "openid": "xxxxxxxxxx",
                        "send_status": 1
                    }
                ],
                "task_status": 1
            }
        ],
        "total_count": 4
    }
    

    其中,task_id的值是uint64_t类型的,经过JSON.parse后会丢失精度,导致实际获取的task_id不正确。所以在使用wx.request获取群发任务列表时,不要返回json,因为官方文档说明会对返回的数据做JSON.parse

    正确的做法是改变wx.request的dataType类型为text,然后对返回的data进行task_id数值替换,将数值替换为字符串,然后再JSON.parse,不然所有对task进行操作的接口,都会因为传入错误的task_id而出现参数错误的结果。(如果官方能够调整接口,将task_id的返回值类型修改为字符串,那么就不需要这么麻烦了,也不会再有其他开发人员在这个问题上踩坑

     wx.request({
          url: url,
          method:'POST',
          data:postData,
          dataType:'text',
          header: {
            'content-type''application/json'
          },
          success(res) => {
            //其他判断省略        
            var dat = res.data;        
            dat = dat.replace(/\"task_id\":(\d+)/g,'"task_id":"$1"');
            //最后返回rtn这个JSON
            var rtn = JSON.parse(dat);
          },
          fail(err) => {
            
          },
          complete:()=>{
            
          }
     })
    
    2020-11-26
    有用
    回复
登录 后发表内容
问题标签