链滴 社区客户端 API 文档 作者:88250 原文链接:https://ld246.com/article/1488603534762 来源网站:链滴 许可协议:署名-相同方式共享 4.0 国际 (CC BY-SA 4.0)
该文档主要面向社区客户端开发者,如果你想开发一个移动端 APP 的话请仔细阅读该文档。如 你喜欢写博客,想要将博客和社区进行联动的话请参考[内容 API 开放,欢迎各位独立博客主进行连接](https://ld246.com/article/145715 841475) 。
目前以下列出的 API 已经可用,大家有什么想补充的请跟帖。
- 欢迎用于 APP、插件、数据分析研究等
- 禁止用于以内容填充为目的应用或站点
对于请求和响应的一些公共约定在这里统一进行描述。
-
数据使用 UTF-8 编码
-
参数可能是查询字符串也可能是通过 body 传递
-
响应的 Status Code 可能是
200
也可能是其他值,客户端需要校验401
:需要登录403
:权限不足
不要使用 HTTP 客户端自带的 UA,请一定要自定义 UA,推荐格式 {App}/{Ver},比如 Solo/2.9.5
。如果不自定义 UA,请求将会被社区的 量监控系统阻断,并且对发起请求的 IP 进行一定时间的拦截。
- 服务端使用 HTTP Cookie
symphony
进行身份验证
请求:
- 使用查询字符串
p
作为当前页号 - 服务端固定页大小为
20
响应:
返回 pagination
对象,包含两个字段:
paginationPageCount
:分页总页数paginationPageNums
:以参数p
为中间的窗口页码列表 窗口最大宽度为 15
响应中的 HTTP body 为 JSON 结构,固定包含 3 个字段:
<span class="highlight-p">{</span>
<span class="highlight-s2">"code"</span><span class="highlight-o">:</span> <span cla s="highlight-mi">0</span><span class="highlight-p">,</span>
<span class="highlight-s2">"msg"</span><span class="highlight-o">:</span> <span cla s="highlight-s2">""</span><span class="highlight-p">,</span>
<span class="highlight-s2">"data"</span><span class="highlight-o">:</span> <span cla s="highlight-kc">null</span>
<span class="highlight-p">}</span>
`</pre>
原文链接:社区客户端 API 文档
其中:
-
code
:类型是 int,不会为 null,表示状态码,其值请参考 [StatusCode.java](https:// ink.ld246.com/forward?goto=https%3A%2F%2Fgithub.com%2F88250%2Fsymphony%2Fblo %2Fmaster%2Fsrc%2Fmain%2Fjava%2Forg%2Fb3log%2Fsymphony%2Futil%2FStatusCodes.ja a) -
使用 HTTPS 协议
-
所有 API 都会做是否允许非登录请求的校验,如果返回 `401</co e> 则请带上 Cookie
-
请勿频繁调用,每个 IP 每分钟请求数不能超过 120 次,每个 IP 只能建立一个连接
GET 方法:
-
GET 方法:
https://ld246.com/api/v2/articles/domain/{domainURI}?p=1` /li>
示例:[https://ld246.com api/v2/articles/domain/Java?p=1](https://ld246.com/api/v2/articles/domain/Java?p=1)
-
GET 方法:
https://ld246.com/api/v2/articles/tag/{tagURI}?p=1
示例:
-
按优选排序:https://l 246.com/api/v2/articles/tag/Java/perfect?p=1
原文链接:社区客户端 API 文档* 按最近回帖排序:https:/ ld246.com/api/v2/articles/tag/Java/reply?p=1
GET 方法:
是回帖的https://ld246.com/api/v2/article/{articleId}?p=1
,分页参数 < ode>p-
POST 方法:
https://ld246.com/api/v2/article
-
Body:
<span class="highlight-p"> </span> <span class="highlight-s2">"articleTitle"</span><span class="highlight-o">:</span> <sp n class="highlight-s2">""</span><span class="highlight-p">,</span> <span class="highlight-s2">"articleTags"</span><span class="highlight-o">:</span> <s an class="highlight-s2">""</span><span class="highlight-p">,</span> <span class="highli ht-c1">// 用英文逗号分隔 </span><span class="highlight-c1"></span> <span class="highlight-s2">"articleContent" /span><span class="highlight-o">:</span> <span class="highlight-s2">""</span><span cla s="highlight-p">,</span> <span class="highlight-s2">"articleRewardContent"</span><span class="highlight-o">:</ pan> <span class="highlight-s2">""</span> <span class="highlight-c1">// 打赏区内容 </span><span class="highlight-c1"></span> <span class="highlight-s2">"articleRewardPo nt"</span><span class="highlight-o">:</span> <span class="highlight-kr">int</span> <sp n class="highlight-c1">// 打赏积分 </span><span class="highlight-c1"></span><span class="highlight-p">}</span>
-
GET 方法:
https://ld246.com/api/v2/article/update/{articleId}
-
PUT 方法:
https://ld246.com/api/v2/article/{articleId}
-
Body:
<span class="highlight-p"> </span> <span class="highlight-s2">"articleTitle"</span><span class="highlight-o">:</span> <sp n class="highlight-s2">""</span><span class="highlight-p">,</span> <span class="highlight-s2">"articleTags"</span><span class="highlight-o">:</span> <s an class="highlight-s2">""</span><span class="highlight-p">,</span> <span class="highli ht-c1">// 用英文逗号分隔 </span><span class="highlight-c1"></span> <span class="highlight-s2">"articleContent" /span><span class="highlight-o">:</span> <span class="highlight-s2">""</span><span cla s="highlight-p">,</span> <span class="highlight-s2">"articleType"</span><span class="highlight-o">:</span> <s an class="highlight-kr">int</span><span class="highlight-p">,</span> <span class="highli ht-c1">// 帖子类型,按获取帖子后的值传入即可 </span><span class="highlight-c1"></span> <span class="highlight-s2">"articleRewardC 原文链接:社区客户端 API 文档 ntent"</span><span class="highlight-o">:</span> <span class="highlight-s2">""</span> < pan class="highlight-c1">// 打赏区内容 </span><span class="highlight-c1"></span> <span class="highlight-s2">"articleRewardPo nt"</span><span class="highlight-o">:</span> <span class="highlight-kr">int</span> <sp n class="highlight-c1">// 打赏积分 </span><span class="highlight-c1"></span><span class="highlight-p">}</span>
-
POST 方法:
https://ld246.com/api/v2/comment
-
Body:
<span class="highlight-p"> </span> <span class="highlight-s2">"articleId"</span><span class="highlight-o">:</span> <span class="highlight-s2">""</span><span class="highlight-p">,</span> <span class="highlight-s2">"commentContent"</span><span class="highlight-o">:</spa > <span class="highlight-s2">""</span><span class="highlight-p">,</span> <span class="highlight-s2">"commentOriginalCommentId"</span><span class="highligh -o">:</span> <span class="highlight-s2">""</span><span class="highlight-p">,</span> < pan class="highlight-c1">// 可选,如果是回复则传入原回帖 id </span><span class="highlight-c1"></span><span class="highlight-p">}</span>
-
GET 方法:
https://ld246.com/api/v2/domain/{domainURI}
-
GET 方法:
https://ld246.com/api/v2/tag/{tagURI}
-
GET 方法:
https://ld246.com/api/v2/user
-
示例:https://ld246.com/api/v2/user](https://ld246.com/api/v2/tag/Java)
-
GET 方法:
https://ld246.com/api/v2/user/{userName}
-
GET 方法:
https://ld246.com/api/v2/user/n/{userNo}
-
GET 方法:
https://ld246.com/api/v2/user/{userName}/articles?p=1
-
示例:https://ld246.com/a i/v2/user/88250/articles?p=1](https://ld246.com/api/v2/user/n/1)
-
GET 方法:
https://ld246.com/api/v2/user/{userName}/comments?p=1
</ i> - 示例:[https://ld246.co /api/v2/user/88250/comments?p=1](https://ld246.com/api/v2/user/88250/comments?p=1)
-
GET 方法:
https://ld246.com/api/v2/user/{userName}/events?size=16
- 示例:[https://ld246.co /api/v2/user/88250/events?size=16](https://ld246.com/api/v2/user/88250/events?size=16)
size
为获取条数,最小为1
,最大为64
不传该参数则默认为16
。 -
GET 方法:`https://ld246.com/api/v2/user/{userName}/watching/articles?p=1</c de>
-
示例:https://ld 46.com/api/v2/user/88250/watching/articles?p=1
-
GET 方法:
https://ld246.com/api/v2/user/{userName}/following/users?p=1</co e>
-
GET 方法:
https://ld246.com/api/v2/user/{userName}/following/tags?p=1
-
示例:https://ld246 原文链接:社区客户端 API 文档 com/api/v2/user/88250/following/tags?p=1
-
GET 方法:
https://ld246.com/api/v2/user/{userName}/following/articles?p=1</c de>
-
示例:https://ld 46.com/api/v2/user/88250/following/articles?p=1
-
GET 方法:
https://ld246.com/api/v2/user/{userName}/followers?p=1`</l
- 示例:[https://ld246.com api/v2/user/88250/followers?p=1](https://ld246.com/api/v2/user/88250/followers?p=1)
-
GET 方法:
https://ld246.com/api/v2/notifications/unread/count
-
GET 方法:
https://ld246.com/api/v2/notifications/commented?p=1
-
GET 方法:
https://ld246.com/api/v2/notifications/comment2ed?p=1
</l- 示例:[https://ld246 com/api/v2/notifications/comment2ed?p=1](https://ld246.com/api/v2/notifications/comment2ed?p=1)
-
GET 方法:
https://ld246.com/api/v2/notifications/reply?p=1
-
GET 方法:
https://ld246.com/api/v2/notifications/at?p=1
-
GET 方法:
https://ld246.com/api/v2/notifications/following?p=1
-
GET 方法:
https://ld246.com/api/v2/notifications/point?p=1
-
GET 方法:
https://ld246.com/api/v2/notifications/broadcast?p=1
-
GET 方法:
https://ld246.com/api/v2/notifications/wallet?p=1
-
GET 方法:
https://ld246.com/api/v2/notifications/sys-announce?p=1
</l- 示例:[https://ld24 .com/api/v2/notifications/sys-announce?p=1](https://ld246.com/api/v2/notifications/sys-announce?p=1)
-
GET 方法:
https://ld246.com/api/v2/notifications/make-read/{type}
其中
{type}
是消息类型: -
commented
:收到的回帖,包括合并回帖 -
comment2ed
:收到的评论 -
reply
:收到的回复 -
at
:提及我的 -
following
:我关注的同城广播、钱包和系统公告消息拉取后会被自动标记为已读状态,无需调用此 API 进行标记已读
每条获取到的消息都会有
dataType
字段,表示与该消息关联的数据类型。</ >数据类型说明
原文链接:社区客户端 API 文档 原文链接:社区客户端 API 文档 原文链接:社区客户端 API 文档 用户 id 用户 id 用户 id 用户 id 用户 id 用户 id 原文链接:社区客户端 API 文档 原文链接:社区客户端 API 文档 原文链接:社区客户端 API 文档dataType dataId 备注 -1 没有该字段 关联数据已被删除 0 暂未使用 1 暂未使用 2 帖子 id 或回帖 id 此处为设计缺陷,建议用 `dataId` 先查回帖,为空的话再查帖子 3 回帖 id 4 帖子 id 关注的用户发新贴 5 积分转账 id 转账记录会关联转账类型,目前暂时没有接口查询,下同 6 积分转账 id 7 打赏 id 打赏记录会关联打赏类型,目前暂时没有接口查询,下同 8 感谢 id 感谢记录会关联感谢类型,目前暂时没有接口查询,下同 9 帖子 id 10 积分转账 id 11 积分转账 id 12 感谢 id 13 回复 id 14 用户 id 15 帖子 id 16 帖子 id 17 用户 id 18 用户 id 19 老角色 id - 新角色 id 20 帖子 id 21 回帖 id 22 帖子 id 23 帖子 id - 24 帖子 id - 25 回帖 id - 26 回帖 id - 27 帖子 id - 28 帖子 id - 29 货币转账 id 30 货币转账 id 31 货币转账 id 32 货币转账 id 33 回帖 id 34 回帖 id 合并后所有的回帖 id 需要通过 `data` 字段获取 35 回帖 id 同 34 36 积分转账 id 37 聊天会话 id 38 评论 id - 用户 id 39 感谢 id 40 评论 id 41 评论 id 42 帖子 id 43 帖子 id 44 回帖 id 45 回帖 id 46 评论 id 47 评论 id 48 帖子 id 49 回帖 id 50 评论 id 51 帖子 id 52 回帖 id 53 评论 id 54 积分转账 id -
GET 方法:
https://ld246.com/api/v2/tops/users/newbies
-
GET 方法:
https://ld246.com/api/v2/tops/users/followers
-
POST 方法:`https://ld246.com/api/v2/login`
-
Body:
`{ "userName": "", // 用户名或者邮箱 "userPassword" /span>: "", // 使用 MD5 哈希后的值 "captcha": "" // 正常登录不用带该字段,登录失败次数过多时必填 } `
* 返回:`{ "code": 0, "msg"< pan class="highlight-o">: "", "token": "", "userName": "", // 用户名 "needCaptcha"< span>: "" // 登录失败次数过多会返回该值 } `
登录成功后会返回
token
,后续请求需要将该值设置为 Cookiesymp ony
的值,用于鉴权。如果需要填验证码,则使用needCaptcha
返回的 作为参数 GET 请求一次/captcha/login?needCaptcha={needCaptcha}
,返回的 片就是验证码了。 -
POST 方法:
https://ld246.com/api/v2/login/2fa
-
Cookie:
Cookie: symphony={token}
,请求 Cookie 需要带symp ony
项,值为 login 接口返回的token
-
Body:
* 返回:<span class="highlight-p"> </span> <span class="highlight-s2">"twofactorAuthCode"</span><span class="highlight-o">:</s an> <span class="highlight-s2">""</span> <span class="highlight-c1">// 身份验证器动态口 验证码,6 位纯数字 </span><span class="highlight-c1"></span><span class="highlight-p">}</span>
`{ /span> "code": 0, <span class="highlight-c1" // 0 为成功 "msg"< pan class="highlight-o">: "", "token": "", <span class="highlight-c1 >// 成功时才有该值 "userName"</s an>: "" <span class "highlight-c1">// 用户名 }
- POST 方法:
https://ld246.com/api/v2/logout
- GET 方法:
https://ld246.com/api/v2/system/time
- 示例:https://ld246.com/api/v2/syste /time
原文链接:社区客户端 API 文档