冰淇淋2411267875 2026-01-08 15:27 采纳率: 0%
浏览 1

而且使用 POST 获取已发布的消息列表 只返回了 未通知的数据,已通知的 数据 又该怎么获取呢

微信公众号有没有哪个接口可以获取到文章的点赞人数 阅读人数 转发人数和留言条数呢?开发中列表需要展示

而且使用 POST https://api.weixin.qq.com/cgi-bin/freepublish/batchget?access_token=ACCESS_TOKEN
获取已发布的消息列表 只返回了 未通知的数据,已通知的 数据 又该怎么获取呢?另外 修改已发布 文章的接口有没有呢?

  • 写回答

2条回答 默认 最新

  • 檀越@新空间 2026-01-08 15:46
    关注

    下午好🌅🌅🌅
    本答案参考通义千问

    你提出的问题涉及 微信公众号开发 中的几个关键点,包括:

    1. 如何获取已发布的文章列表(包括“已通知”和“未通知”的数据);
    2. 如何获取文章的点赞数、阅读数、转发数、留言数;
    3. 是否有接口可以修改已发布文章。

    下面我将逐一解答,并提供详细的解决方案和代码示例。


    一、如何获取已发布的消息列表(包括“已通知”和“未通知”)

    ✅ 微信官方接口说明

    你提到的接口是:

    POST https://api.weixin.qq.com/cgi-bin/freepublish/batchget?access_token=ACCESS_TOKEN
    

    这个接口用于批量获取已发布的消息列表。根据微信官方文档,该接口默认只返回未通知的消息,即用户尚未收到推送的消息。

    ❗️ 问题:已通知的数据怎么获取?

    目前,微信公众号 API 并没有直接提供获取“已通知”文章的接口。这意味着,如果你需要获取所有已发布文章(无论是否被通知),你需要通过其他方式来实现。


    二、解决方案:获取所有已发布文章(包括已通知和未通知)

    ✅ 解决方案思路

    1. 维护一个本地数据库,记录每条文章的状态(是否已通知);
    2. 使用 batchget 接口获取未通知的文章
    3. 从本地数据库中查询已通知的文章
    4. 合并这两部分数据作为最终结果

    ✅ 详细步骤(以 Python 为例)

    1. 获取未通知的文章(使用 batchget 接口)

    import requests
    
    def get_unread_articles(access_token):
        url = f"https://api.weixin.qq.com/cgi-bin/freepublish/batchget?access_token={access_token}"
        data = {
            "offset": 0,
            "count": 100,
            "status": 0  # 0 表示未通知
        }
        response = requests.post(url, json=data)
        return response.json()
    

    2. 从本地数据库中获取已通知的文章(假设你有一个 articles 表)

    # 假设你用的是 SQLite 数据库
    import sqlite3
    
    def get_read_articles():
        conn = sqlite3.connect('articles.db')
        cursor = conn.cursor()
        cursor.execute("SELECT * FROM articles WHERE status = 1")
        rows = cursor.fetchall()
        conn.close()
        return rows
    

    3. 合并数据

    def get_all_articles(access_token):
        unread_data = get_unread_articles(access_token)
        read_data = get_read_articles()
    
        all_articles = unread_data.get("news_list", []) + read_data
        return all_articles
    

    三、获取文章的点赞数、阅读数、转发数、留言数

    ✅ 微信公众号提供的接口

    微信公众号提供了以下接口来获取文章的统计数据:

    | 接口名称 | 功能 | |--------|------| | GET https://api.weixin.qq.com/datacube/getarticledatav2?access_token=ACCESS_TOKEN | 获取文章统计信息(包括阅读数、点赞数等) |

    ✅ 示例代码(获取文章数据)

    import requests
    
    def get_article_stats(article_id, access_token):
        url = f"https://api.weixin.qq.com/datacube/getarticledatav2?access_token={access_token}"
        data = {
            "begin_date": "2023-01-01",
            "end_date": "2023-01-31",
            "article_id": article_id
        }
        response = requests.post(url, json=data)
        return response.json()
    

    ⚠️ 注意:article_id 是你在后台发布文章时生成的唯一 ID。


    四、是否有接口可以修改已发布文章?

    ✅ 微信公众号 API 没有提供直接修改文章内容的接口。

    但是你可以通过以下方式实现“修改文章”:

    ✅ 方法一:重新发布文章

    你可以通过以下步骤:

    1. 使用 media/uploadnews 接口上传新内容;
    2. 使用 freepublish/add 接口发布新文章;
    3. 删除旧文章(如果需要)。

    ✅ 方法二:使用 freepublish/update 接口(不推荐)

    虽然官方文档中没有明确说明存在 update 接口,但有些开发者反馈可以通过某些方式更新文章内容。不过这种方式不稳定,建议不要依赖


    五、总结

    ✅ 重点总结

    • 无法直接获取“已通知”的文章列表,需结合本地数据库;
    • 获取文章统计信息(点赞、阅读、转发、留言)需调用 datacube/getarticledatav2
    • 无官方接口可直接修改已发布文章,建议重新发布文章
    • 建议维护本地数据库,记录文章状态和统计数据。

    六、推荐做法(有序列表)

    1. 使用 batchget 接口获取未通知的文章列表
    2. 维护本地数据库记录文章状态(已通知/未通知)
    3. 通过 getarticledatav2 接口获取文章的点赞、阅读、转发、留言数据
    4. 如需修改文章内容,建议重新发布文章
    5. 避免依赖非官方接口进行文章修改,以确保稳定性。

    如果你有具体代码或业务逻辑需要帮助,请继续提问,我可以帮你进一步优化。

    评论

报告相同问题?

问题事件

  • 创建了问题 1月8日