为了方便公众号开发者和公众号第三方平台开发者灵活使用图文消息的留言功能,上线了留言功能的相关接口。使用接口过程中有任何问题,可以前往微信开放社区 #公众号 专区发帖交流。

1. 评论能力管理

新建素材时,当公众号具备留言功能的权限时,可以指定 media_id 在群发时打开留言功能,并指定该 media_id 的评论范围(所有人都可以留言,或仅公众号粉丝可以留言)。

1.1 新增永久素材(原接口有所改动)

接口调用请求说明

https 请求方式: POST https://api.weixin.qq.com/cgi-bin/material/add_news?access_token=ACCESS_TOKEN

参数说明

参数 是否必须 类型 说明
title string 标题
thumb_media_id string 图文消息的封面图片素材id(必须是永久 media_ID)
author string 作者
digest string 图文消息的摘要,仅有单图文消息才有摘要,多图文此处为空
show_cover_pic string 是否显示封面,0为false,即不显示,1为true,即显示
content string 图文消息的具体内容,支持HTML标签,必须少于2万字符,小于1M,且此处会去除JS
content_source_url string 图文消息的原文地址,即点击“阅读原文”后的URL
need_open_comment(新增字段) Uint32 是否打开评论,0不打开,1打开
only_fans_can_comment(新增字段) Uint32 是否粉丝才可评论,0所有人可评论,1粉丝才可评论

调用示例

{
    "articles":[{
    "title": TITLE,
    "thumb_media_id": THUMB_MEDIA_ID,
    "author": AUTHOR, "digest" : DIGEST,
    "show_cover_pic": SHOW_COVER_PIC(0/1,
    "content" : CONTENT,
    "content_source_url": CONTENT_SOURCE_URL,
    "need_open_comment" : NEED_OPEN_COMMENT(0/1,
    "only_fans_can_comment" : ONLY_FANS_CAN_COMMENT(0/1}]
    //若新增的是多图文素材,则此处应有几段articles结构,最多8段 
} 

返回(json 格式)

{ "media_id" : MEDIA_ID }

新增返回码(json格式)

{ "errcode" : 88000, "errmsg" : "without comment privilege"   //没有留言权限 } 

错误码说明

错误码 错误信息 解决方案
公共错误码 点击查看
45106 点击查看

1.2 获取永久素材(原接口有所改动)

接口调用请求说明

https 请求方式: POST https://api.weixin.qq.com/cgi-bin/material/get_material?access_token=ACCESS_TOKEN

返回说明

新增返回字段 need_open_comment 和 only_fans_can_comment

1.3 修改永久图文素材(原接口有所改动)

接口调用请求说明

https 请求方式: POST https://api.weixin.qq.com/cgi-bin/material/update_news?access_token=ACCESS_TOKEN

新增参数 need_open_comment 和 only_fans_can_comment

1.4 获取素材列表(原接口有所改动)

接口调用请求说明

https 请求方式: POST https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=ACCESS_TOKEN

新增参数 need_open_comment 和 only_fans_can_comment

2. 评论数据管理

2.1 打开已群发文章评论(新增接口)

接口调用请求说明

https 请求方式: POST https://api.weixin.qq.com/cgi-bin/comment/open?access_token=ACCESS_TOKEN

参数说明

参数 是否必须 类型 说明
msg_data_id Uint32 群发返回的msg_data_id
index Uint32 多图文时,用来指定第几篇图文,从0开始,不带默认操作该msg_data_id的第一篇图文

调用示例

{ "msg_data_id" : MSG_DATA_ID, "index" : INDEX }

返回(json格式)

{ "errcode": ERRCODE, "errmsg" : ERRMSG } 

返回码定义

{ 
    "errcode" : 45009,
    "errmsg" : "reach max api daily quota limit"
    //没有剩余的调用次数 
  }
 { 
    "errcode" : 88000, 
    "errmsg" : "without comment privilege"
    //没有留言权限
  }
 { 
    "errcode" : 88001, 
    "errmsg" : "msg_data is not exists" 
    //该图文不存在
   }
 { 
    "errcode": 88002, 
    "errmsg" : "the article is limit for safety"
     //文章存在敏感信息 
}

2.2 关闭已群发文章评论(新增接口)

接口调用请求说明

https 请求方式: POST https://api.weixin.qq.com/cgi-bin/comment/close?access_token=ACCESS_TOKEN

参数说明

参数 是否必须 类型 说明
msg_data_id Uint32 群发返回的msg_data_id
index Uint32 多图文时,用来指定第几篇图文,从0开始,不带默认操作该msg_data_id的第一篇图文

调用示例

{ "msg_data_id" : MSG_DATA_ID, "index" : INDEX, }

返回(json格式)

{ "errcode": ERRCODE, "errmsg" : ERRMSG } 

2.3 查看指定文章的评论数据(新增接口)

接口调用请求说明

https 请求方式: POST
https://api.weixin.qq.com/cgi-bin/comment/list?access_token=ACCESS_TOKEN

参数说明

参数 是否必须 类型 说明
msg_data_id Uint32 群发返回的msg_data_id
index Uint32 多图文时,用来指定第几篇图文,从0开始,不带默认返回该msg_data_id的第一篇图文
begin Uint32 起始位置
count Uint32 获取数目(>=50会被拒绝)
type Uint32 type=0 普通评论&精选评论 type=1 普通评论 type=2 精选评论

调用示例

{ "msg_data_id" : MSG_DATA_ID, "index" : INDEX, "begin": BEGIN, "count": COUNT, "type" : TYPE } 

返回(json格式)

{ 
    "errcode": 0, 
    "errmsg": "ok", 
    "total": TOTAL          //总数,非comment的size around
    "comment": [{ 
        "user_comment_id" : USER_COMMENT_ID      //用户评论id 
        "openid": OPENID                         //openid,用户如果用非微信身份评论,不返回openid
        "create_time": CREATE_TIME               //评论时间 
        "content": CONTENT                       //评论内容 
        "comment_type": IS_ELECTED               //是否精选评论,0为即非精选,1为true,即精选
        "reply": { 
                "content": CONTENT               //作者回复内容
                "create_time" : CREATE_TIME      //作者回复时间 
            } 
        }] 
}

返回码定义

 { "errcode" : 45009 , "errmsg" : "reach max api daily quota limit"                  //没有剩余的调用次数 }
 { "errcode" : 88000 , "errmsg" : "open comment without comment privilege" //没有留言权限 }
 { "errcode" : 88001 , "errmsg" : "msg_data is not exists"                                   //该图文不存在 }
 { "errcode" : 88010 , "errmsg" : "count range error. cout <= 0 or count > 50" //获取评论数目不合法 } 

2.4 将评论标记精选(新增接口)

接口调用请求说明

https 请求方式: POST https://api.weixin.qq.com/cgi-bin/comment/markelect?access_token=ACCESS_TOKEN

参数说明

参数 是否必须 类型 说明
msg_data_id Uint32 群发返回的msg_data_id
index Uint32 多图文时,用来指定第几篇图文,从0开始,不带默认操作该msg_data_id的第一篇图文
user_comment_id Uint32 用户评论id

调用示例

{ "msg_data_id" : MSG_DATA_ID, "index": INDEX, "user_comment_id": COMMENT_ID, } 

返回格式(json)

 { "errcode": ERRCODE, "errmsg" : ERRMSG } 

返回码定义

 { "errcode" : 45009, "errmsg" : "reach max api daily quota limit"                 //没有剩余的调用次数 }
 { "errcode" : 88000, "errmsg" : "open comment without comment privilege" //没有留言权限 }
 { "errcode" : 88001, "errmsg" : "msg_data is not exists"                                  //该图文不存在 }
 { "errcode" : 88003, "errmsg" : "elected comment upper limit"                      //精选评论数已达上限 }
 { "errcode" : 88004, "errmsg" : "comment was deleted by user"                     //已被用户删除,无法精选 }
 { "errcode" : 88008, "errmsg" : "comment is not exists"                                  //该评论不存在 } 

2.5 将评论取消精选

接口调用请求说明

https 请求方式: POST https://api.weixin.qq.com/cgi-bin/comment/unmarkelect?access_token=ACCESS_TOKEN

参数说明

参数 是否必须 类型 说明
msg_data_id Uint32 群发返回的msg_data_id
index Uint32 多图文时,用来指定第几篇图文,从0开始,不带默认操作该msg_data_id的第一篇图文
user_comment_id Uint32 用户评论id

调用示例

{ "msg_data_id" : MSG_DATA_ID, "index": INDEX, "user_comment_id": COMMENT_ID, } 

返回格式(json)

{ "errcode": ERRCODE, "errmsg" : ERRMSG } 

返回码定义

{ "errcode" : 45009, "errmsg" : "reach max api daily quota limit"                  //没有剩余的调用次数 }
{ "errcode" : 88000, "errmsg" : "open comment without comment privilege" //没有留言权限 }
{ "errcode" : 88001, "errmsg" : "msg_data is not exists"                                          //该图文不存在 }
{ "errcode" : 88008, "errmsg" : "comment is not exists"                                         //该评论不存在 } 

2.6 删除评论(新增接口)

接口调用请求说明

https 请求方式: POST https://api.weixin.qq.com/cgi-bin/comment/delete?access_token=ACCESS_TOKEN

参数说明

参数 是否必须 类型 说明
msg_data_id Uint32 群发返回的msg_data_id
index Uint32 多图文时,用来指定第几篇图文,从0开始,不带默认操作该msg_data_id的第一篇图文
user_comment_id Uint32 评论id

调用示例

{ "msg_data_id" : MSG_DATA_ID, "index"   : INDEX, "user_comment_id": COMMENT_ID, }

返回格式(json)

 {"errcode": ERRCODE, "errmsg" : ERRMSG } 

返回码定义

 { "errcode" : 45009, "errmsg" : "reach max api daily quota limit"                  //没有剩余的调用次数 }
 { "errcode" : 88000, "errmsg" : "open comment without comment privilege" //没有留言权限 }
 { "errcode" : 88001, "errmsg" : "msg_data is not exists"                                          //该图文不存在 } 
 { "errcode" : 88008, "errmsg" : "comment is not exists"                                         //该评论不存在 } 

2.7 回复评论(新增接口)

接口调用请求说明

https 请求方式: POST https://api.weixin.qq.com/cgi-bin/comment/reply/add?access_token=ACCESS_TOKEN

参数说明

参数 是否必须 类型 说明
msg_data_id Uint32 群发返回的msg_data_id
index Uint32 多图文时,用来指定第几篇图文,从0开始,不带默认操作该msg_data_id的第一篇图文
user_comment_id Uint32 评论id
content string 回复内容

调用示例

{ "msg_data_id" : MSG_DATA_ID, "index"  : INDEX, "user_comment_id": COMMENT_ID, "content": CONTENT }

返回格式(json)

{ "errcode": ERRCODE, "errmsg" : ERRMSG } 

返回码定义

{ "errcode" : 45009, "errmsg" : "reach max api daily quota limit"                  //没有剩余的调用次数 }
{ "errcode" : 88000, "errmsg" : "open comment without comment privilege" //没有留言权限 } 
{ "errcode" : 88001, "errmsg" : "msg_data is not exists"                             //该图文不存在 } 
{ "errcode" : 88005, "errmsg" : "already reply"                                            //已经回复过了 } 
{ "errcode" : 88007, "errmsg" : "reply content beyond max len or content len is zero"//回复超过长度限制或为0 }
{ "errcode" : 88008, "errmsg" : "comment is not exists"                           //该评论不存在 } 

2.8 删除回复(新增接口)

接口调用请求说明

https 请求方式: POST https://api.weixin.qq.com/cgi-bin/comment/reply/delete?access_token=ACCESS_TOKEN

参数说明

参数 是否必须 类型 说明
msg_data_id Uint32 群发返回的msg_data_id
index Uint32 多图文时,用来指定第几篇图文,从0开始,不带默认操作该msg_data_id的第一篇图文
user_comment_id Uint32 评论id

调用示例

{ "msg_data_id" : MSG_DATA_ID, "index"  : INDEX, "user_comment_id": COMMENT_ID, }

返回格式(json)

{ "errcode": ERRCODE, "errmsg" : ERRMSG }

返回码定义

{ "errcode" : 45009, "errmsg" : "reach max api daily quota limit"                    //没有剩余的调用次数 }  
{ "errcode" : 88000, "errmsg" : "open comment without comment privilege" //没有留言权限 }  
{ "errcode" : 88001, "errmsg" : "msg_data is not exists"                                   //该图文不存在 }
{ "errcode" : 88008, "errmsg" : "comment is not exists"                                   //该评论不存在 }
{ "errcode" : 87009, "errmsg" : "reply is not exists"                                       //该回复不存在 }