• bbs1
    App 接口
    ID app_api版本 1.2.0插件制作者 bbs1免费1747 行 / 86.6 KBHook / 路由 / 后台页
    让手机 App 与微信小程序可以登录站点、浏览版块和主题、发帖回帖、上传图片、接收通知。
    app/plugins/app_api/plugin.php
    开发日志已有 3 条

    个人独立维护项目。

    • bbs1
      bbs1
      版本 1.2.0 0e2ce1f0dfa8 更新:基础apprelease
    • bbs1
      bbs1
      版本 1.2.0 be53e1d6a5fc 更新:上传图片、接收通知
    • bbs1
      bbs1
      版本 1.0.0 9bc1cab843ac 更新:给手机 App、微信小程序和 H5 用的 JSON 数据接口。用 Bearer 令牌认证,不依赖 Cookie 会话;App 端和网页端看到的内容、拥有的权限完全一致。 接口地址:`/api/v1/…` ## 能做什么 **账号** - `POST /v1/auth/login` 用户名密码换一对令牌 - `POST /v1/auth/refresh` 续期令牌换新的一对 - `POST /v1/
    淘帖专辑必装插件
    主楼
  • bbs1

    版本 1.0.0 更新:
    给手机 App、微信小程序和 H5 用的 JSON 数据接口。用 Bearer 令牌认证,不依赖 Cookie 会话;App 端和网页端看到的内容、拥有的权限完全一致。

    接口地址:/api/v1/…

    能做什么

    账号

    • POST /v1/auth/login 用户名密码换一对令牌
    • POST /v1/auth/refresh 续期令牌换新的一对
    • POST /v1/auth/logout 注销当前设备
    • POST /v1/auth/register App 内注册(后台默认关闭)
    • GET /v1/me 当前用户的资料与权限

    站点

    • GET /v1/config 站点信息、App 内公告、要求的最低版本与下载地址
    • GET /v1/forums 当前身份有权浏览的版块列表

    内容

    • GET /v1/topics 主题流,可按版块筛选,按发布时间或回复时间排序
    • GET /v1/topics/{id} 主题正文与回复列表
    • POST /v1/topics 发主题
    • POST /v1/topics/{id}/replies 回复主题
    • GET /v1/search 搜索主题与回复

    几个约定

    • 响应统一是 {"code":0,"message":"ok","data":{…}},code 为 0 表示成功,其余为错误码。
    • 翻页用游标,不用页码:把响应里的 next_cursor 原样回传即可。中途有人发帖也不会重复或漏读。
    • 令牌在服务端只存哈希,并绑定账号当前的密码。改密码、账号被禁用、被改为禁言,已签发的令牌都立刻失效。
    • 换令牌时旧的一对立刻作废,所以客户端要做单飞刷新,避免并发请求互相顶掉。
    • 发帖回帖走和网页端完全一样的规则:禁言判定、发帖间隔、版块发帖权限、内容长度,一条都不放宽。
    • 预留了 app_api.before_publish 钩子,其他插件可以在这里拦截 App 端发布的内容。

    写在最后

    开关、令牌有效期、每账号同时在线的设备数(默认 5 台)、App 内公告,都在后台「插件 → App 接口」里设置。

    一共 12 个接口。列表里我特意没写请求参数细节——帖子读者关心的「能做什么」,参数留给他们去翻接口文档更合适;你要是想让帖子更硬核,我可以把每个接口的参数补进列表里。

    #1
  • 质量报告

    插件质量报告

    插件:app_api

    Hook功能范围循环使用频率文件读写修改系统表读写系统表读写自己的表
    request.csrf_exempt请求 CSRF 豁免检查否2----
    site.closed_allow站点关闭访问豁免检查否2----

    颜色说明:黄色表示有数据读写,红色表示 Hook 在系统循环中执行,浅蓝色表示有文件写入。“列表跳过”表示回调在列表路径会提前返回,“回调内”表示操作位于回调自身或其帮助函数的循环体内。“文件批处理”表示逐个处理用户一次提交的文件,属于必要操作,不标记修正。只有操作实际处于需要优化的循环路径时,才会标记“修正❗️”。

    数据字典

    plugin_app_api_tokens

    字段类型可空默认值约束
    idid否-主键、自增
    user_iduint否0-
    token_hashkey否-唯一
    refresh_hashkey否-唯一
    password_fpkey否''-
    devicestring否''-
    platformstring否''-
    expires_atuint否0-
    refresh_expires_atuint否0-
    last_used_atuint否0-
    created_atuint否0-
    revoked_atuint否0-

    plugin_app_api_oauth

    字段类型可空默认值约束
    idid否-主键、自增
    providerstring否''-
    bind_keykey否-唯一
    openidstring否''-
    unionidstring否''-
    user_iduint否0-
    created_atuint否0-

    plugin_app_api_pending

    字段类型可空默认值约束
    idid否-主键、自增
    providerstring否''-
    ticket_hashkey否-唯一
    bind_keykey否''-
    openidstring否''-
    unionidstring否''-
    expires_atuint否0-
    created_atuint否0-
    #2
  • code

    不错,可以。

    #3
  • bbs1

    版本 1.2.0 更新:
    上传图片、接收通知

    #4
  • 蓝太阳

    非常好

    #5
  • bbs1

    版本 1.2.0 更新:
    基础app

    #6

发表回复

登录后回复