开发者接口

该文档需要技术同学阅读,需要理解什么是 webhook 以及知道如何写一个接收 POST 数据的接口。

说明

API 套餐不同于价格界面的阅读套餐,阅读套餐不允许非 RSS 阅读器用途的程序采集,具体价格请联系客服。

开通接口套餐需要注意的是,延时并不会变成实时或者有大的缩短(1分钟-28小时左右,偶尔有比较大延迟),但是因为使用 webhook 通知机制通常会比阅读器抓取快一些。

支持按月/按年付费。按月价格可能变动,续费时按照实时价格计算。

接口套餐不支持 RSS 阅读器,即此时提供的 RSS 链接是无效的。需要保留 RSS 阅读器抓取需要付费(联系我们进行设定)。

接口不会返回阅读数、点赞数等数据。

对于视频类型文章,因为文章内视频地址非固定地址,也无法返回。

密钥

开通 API 付费套餐后会生成一个密钥,uuid 类型,可在【我的订阅 -> API 设置】查看。

webhook 配置

需要在【我的订阅-> API 设置】配置一个 http 或者 https 协议的 url 用以接收数据推送,我们会以 application/json 的 content-type 和 POST 的方式推送文章数据。

推送方式是一个新文章一个推送。

支持鉴权参数,会附带在 webhook 参数中一起发送,参数名为 token。

系统在网络异常的情况下可能会重复推送同一篇文章,所以需要进行唯一性判断避免保存重复文章。

推送字段:

{
  "token", // 鉴权参数
  "title", // 标题
  "url", // 链接
  "source_url", // 原文链接
  "posted_at", // 发布时间
  "idx", // 文章位置,从 0 开始
  "mid", // 在链接中的文章 mid 参数,注意 mid + idx + account_iid 才能确定一篇文章唯一性
  "author", // 作者
  "summary", // 摘要
  "picture", // 主图
  "content", // 内容
  "type", // 类型
  "content_iid", // 文章在 werss 系统中的唯一数字 id,
  "is_original", // 是否有原创标记
  "account_meta": { // 账号信息
    "name",
    "avatar",
    "description",
    "alias",
    "biz",
    "account_iid",
    "rss_id"
  }
}

主动触发 webhook 推送

通过下面链接可以手动触发推送,参数 url 为你订阅的任一公众号的任一篇文章(需要 encode),auth_token 为后台你配置的鉴权 token。举例:

https://wealert2.vux.li/api/v1/wechats/extract_url?url=http%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzUxMDE3Mjg4NA%3D%3D%26amp%3Bmid%3D2247491842%26amp%3Bidx%3D2%26amp%3Bsn%3D223f0c63b97420a76eb190ea0757afb6%26amp%3Bchksm%3Df905aab9ce7223afd4f0bd2330e98beeb4f8a94cd8696a9744355a58d5b15e07c7117c89483a%23rd&auth_token=123456

API 请求域名

当前 API 请求域名为 https://wealert2.vux.li,如果仅通过 webhook 接收推送则用不到该域名。

API 获取订阅账号列表

GET https://wealert2.vux.li/api/v3/developers/subscribes?token=密钥

返回的参数中 rss_id 用以在主动拉取接口中作为公众号识别 id 使用。

{
  "done": true,
  "error": 0,
  "data": {
    "list": [
      {
        "name": "公众号1",
        "avatar": "http://wx.qlogo.cn/mmhead/Q3auHgzwzM6b4wlcQqibMNtOyWMV5PIp9dNknicVFrdicYEgnVr8iafd4w/132",
        "description": "公众号描述",
        "alias": "Dejuhwfch",
        "biz": "3568888514",
        "valid": true,
        "account_iid": 2001784,
        "status": null,
        "rss_id": "9198fea1-667f-498f-93cf-**********",
        "last_posted_at": "2019-11-25T00:30:00.000Z",
        "last_fetched_at": "2019-11-25T07:53:24.000Z",
        "subscribed_at": "2019-11-20T10:55:07.650Z"
      },
      {
        "name": "公众号2",
        "avatar": "http://wx.qlogo.cn/mmhead/Q3auHgzwzM78BmnoDpVXRW6iaZM4HqDphcrRJoR8G8kwq2U6CcDics1w/132",
        "description": "公众号描述",
        "alias": "gold1849",
        "biz": "3254358981",
        "valid": true,
        "account_iid": 1262162,
        "status": null,
        "rss_id": "cc636bf9-98f5-4ead-a2f1-**********",
        "last_posted_at": "2019-11-24T22:30:00.000Z",
        "last_fetched_at": "2019-11-25T08:04:33.000Z",
        "subscribed_at": "2019-11-20T10:55:49.817Z"
      }
    ]
  }
}

API 主动拉取单个账号近期文章

非实时接口,仅为返回系统保存的最近的 8 篇文章。

如无必要,不需要请求该接口,使用 webhook 可以更快更低成本。

RSS_ID 为订阅列表返回的每个账号的 rss_id。

GET https://wealert2.vux.li/api/v3/developers/subscribes/RSS_ID?token=密钥

{
  "done": true,
  "error": 0,
  "data": {
    "list": [{
      "title", // 标题
      "url", // 链接
      "source_url", // 原文链接
      "posted_at", // 发布时间
      "idx", // 文章位置,从 0 开始
      "mid", // 在链接中的文章 mid 参数,注意 mid + idx + account_iid 才能确定一篇文章唯一性
      "author", // 作者
      "summary", // 摘要
      "picture", // 主图
      "content", // 内容
      "content_iid", // 文章在 werss 系统中的唯一数字 id
      "is_original" // 是否有原创标记
    }],
    "account_meta": { // 账号信息
      "name",
      "avatar",
      "description",
      "alias",
      "biz",
      "account_iid",
      "rss_id"
    }
  }
}