概述 该文档主要面向社区客户端开发者,如果你想开发一个移动端 APP 的话请仔细阅读该文档。如果你喜欢写博客,想要将博客和社区进行联动的话请参考[链接] 。 目前以下列出的 API 已经可用,大家有什么想补充的请跟帖。 使用原则 欢迎用于 APP、插件、数据分析研究等 禁止用于以内容填充为目的应用或站点 公共约定 对于 ..

📝 社区客户端 API 文档

本贴最后更新于 270 天前,其中的信息可能已经渤澥桑田

概述

该文档主要面向社区客户端开发者,如果你想开发一个移动端 APP 的话请仔细阅读该文档。如果你喜欢写博客,想要将博客和社区进行联动的话请参考内容 API 开放,欢迎各位独立博客主进行连接 。

目前以下列出的 API 已经可用,大家有什么想补充的请跟帖。

使用原则

公共约定

对于请求和响应的一些公共约定在这里统一进行描述。

HTTP

User-Agent

不要使用 HTTP 客户端自带的 UA,请一定要自定义 UA,推荐格式 {App}/{Ver},比如 Solo/v2.9.5。如果不自定义 UA,请求将会被社区的流量监控系统阻断,并且对发起请求的 IP 进行一定时间的拦截。

鉴权

列表分页

响应结构

响应中的 HTTP body 为 JSON 结构,固定包含 3 个字段:

{
    "sc": 0,
    "msg": "",
    "data": null
}

其中:

注意事项

帖子

获取最新帖子列表

GET 方法:

获取领域帖子列表

获取标签帖子列表

示例:

获取帖子详情

发布帖子

获取帖子详情用于更新

更新帖子

回帖

发布回帖

领域

获取领域列表

获取领域详情

标签

获取标签列表

获取标签详情

用户

根据用户名获取用户详情

根据用户序号获取用户详情

获取用户帖子列表

获取用户回帖列表

获取用户关注帖子列表

获取用户关注用户列表

获取用户关注标签列表

获取用户收藏帖子列表

获取用户关注者列表

通知

获取未读计数

获取收到的回帖消息列表

获取收到的回复消息列表

获取提及我的消息列表

获取我关注的消息列表

获取我的积分消息列表

获取同城广播消息列表

获取系统公告消息列表

榜单

获取新注册用户列表

获取粉丝榜

登录

密码验证

两步验证

登出

系统

获取系统当前时间

  • 黑客派

    黑客派是 B3log 开源社区的线上论坛,这里主要汇聚了程序员和设计师。HacPai 分别取 Hacker / Painter 的头三个字母组成,源自《黑客与画家》。

    我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

    更多细节请浏览黑客派简介。

    328 引用 • 6695 回帖 • 650 关注
  • Sym

    Sym 是一个用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)平台,“下一代的社区系统,为未来而构建”。

    444 引用 • 4204 回帖 • 643 关注
  • API

    应用程序编程接口(Application Programming Interface)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

    49 引用 • 300 回帖
  • 客户端
    4 引用 • 89 回帖
优质回帖
  • lijp • • 1 • 1 赞同

    补充:
    ①感谢、like、unlike、收藏、查看的接口;
    ②相关帖子的列表接口;
    ③搜索的接口;(不知道能不能直接在移动端集成 Algolia)
    ④书单的接口;

    其他的一些很好玩,但我觉得暂时没必要(此刻、财富排行及消费排行)

  • Vanessa • • 1 赞同

    0e060c04352a4a4092e3fab5bab6b873-image.png

    这几个怕是要提供一下。还有消息推送哟。

  • Vanessa • • 1 赞同

    • 文章详情页面评论需要下拉刷新,重新给一个接口
    • 文章详情页面返回 HTML

76 回帖
请输入回帖内容...
  • 295524115 •

    这个 API 在社区版 symphony 上也有么

    1 回复
  • 88250 •

    没有。

  • mayi123 •

    这种 API 怎么开发的啊?是要重新写 servlet 吗?能不能提供个例子呢?
    为什么我在 doget()中调用 service 方法(例如 ArticleQueryService.getArticle("1521445097051"))报以下错误呢?菜鸟一枚,请大家指点指点

    Servlet.service() for servlet [TestServlet] in context with path [/symphony] threw exception
    java.lang.NullPointerException
    at org.b3log.symphony.service.ArticleQueryService.getArticle(ArticleQueryService.java:1087)

    1 回复
  • 88250 •

    用 Latke 框架开发,参考已有代码中的 Processor;报错是 NPE,请检查代码。

    1 回复
  • mayi123 •

    谢谢您的提示,调通了。🙏

  • zongdusir •

    有 QQ 群吗?可以讨论一下,我也可以创一个

    1 回复
  • 88250 •

    没有,我们都在这里交流。

  • shuiniu •

    太棒了,很专业

  • gitors •

    请教一下,API 对于获取的文章 除了 API 上加的参数,还有其他的过滤条件吗?

    我发现 优选排序的接口。获取到的数据,最新的是 9 月 4 号的那条,跟社区的数据不一致。

    1 回复
  • 88250 •

    User-Agent 一定要配置,你看下上面的介绍。

  • ronger •

    @88250 需要一个优选文章的 API trollface

    2 回复
  • 88250 •

    收到,下午有空就添加。

  • 88250 •

    最新帖子按优选排序的 API 已经上线。

  • ronger •

    帖子详情是不是应该提供未渲染前的文章内容数据(markdown 语法格式),以满足想自己渲染的用户
    @88250

    1 回复
  • 88250 •

    原始文本可能存在不安全内容,比如 XSS 脚本。

  • ronger •

    建议提供被关注排行 API,用于向用户推荐优质作者
    近期新用户 API,用于增加新用户曝光率

    2 回复
  • 88250 •

    收到,最迟下周一会上线。

  • 88250 •

    已经上线了,你看下正文中的榜单一节。

    1 回复
  • ronger •

    好的

  • 88250 •

    增加根据用户编号获取用户详情的 API: https://hacpai.com/api/v2/user/n/1

    1 回复
  • YxxXlv0COaxl •

    用户信息里的随机是拿来干啥的?

    1 回复
  • 88250 •

    用来让客户端区别不同请求的。

  • hahayi •

    社区版是不是没有 API 功能?

    1 回复
  • 88250 •

    没有。Sym 商业版和社区版的对比请看这里。

  • illn •

    @88250 hackpai 有没有互联登陆使用的 API ?

    1 回复
  • 88250 •

    因为黑客派目前用户很少,所以暂时不考虑开放授权登录。

请输入回帖内容 ...