API说明:其他

2019-06-27 08:26:44
Catouse
362
最后编辑:先知 于 2019-11-22 09:32:05

上传下载用户在客户端的配置信息

请求
方向:client → xxd
{
  userID,
  module: "chat",
  method: "settings",
  params: 
  [
    account, //用户名
    settings //用户配置信息, 可选, 为空表示下载用户配置信息, 不为空表示上传用户配置信息, 默认为空 
  ]
}
方向: xxd → xxb

xxd把client发送的数据转发给xxb。

响应
方向:xxb → xxd
{
  module: "chat",
  method: "settings",
  users[],
  result, 
  data // 用户配置信息
}
方向:xxd → client

把xxb服务器响应给xxd服务器的信息去掉users字段后,发送给当前登录用户。

为会话设置分组(1.3新增)

请求
方向:client → xxd
{
  userID,
  module: "chat",
  method: "category",
  params: 
  [
    gids, // 要设置新的分组的会话 gid 数组
    category, // 新的分组名称
  ]
}
方向: xxd → xxb

xxd把client发送的数据转发给xxb。

响应
方向:xxb → xxd
{
  module: "chat",
  method: "category",
  users[],
  result, 
  data: {
    gids, // 同参数
    category // 同参数
  }
}
方向:xxd → client

把xxb服务器响应给xxd服务器的信息去掉users字段后,发送给当前登录用户。

管理员请求解散一个讨论组(1.3新增)

请求
方向:client → xxd
{
  userID,
  module: "chat",
  method: "dismiss",
  params: 
  [
    gid, //要解散的讨论组gid
  ]
}
方向: xxd → xxb

xxd把client发送的数据转发给xxb。

响应
方向:xxb → xxd
{
  module: "chat",
  method: "dismiss",
  users[],
  result, 
  data // 解散后的讨论组对象
}
方向:xxd → client

把xxb服务器响应给xxd服务器的信息去掉users字段后,发送给当前登录用户。

通知接口

请求
方向:xxd → xxb
{
  module: "chat",
  method: "notify",
  params:
  [
    offline:"", //离线用户
    sendfail:"",//失败消息
  ] 
}
响应:xxb → xxd
{
  module: "chat",
  method: "notify",
  data:
  [
    {
      id:
      [
        {
          gid:            //全局唯一ID
          title:          //通知标题
          subtitle:       //通知副标题
          content:        //通知内容
          date:           //通知时间戳
          contentType:    //内容格式
          url:            //连接
          read:false      //是否已读
          actions:[
            {
              label:    //操作标题
              url:      //操作指向
              type:     //操作类型
            }
          ]
          sender:{
            id:         //发送方唯一标识
            name:       //应用名称
            avatar:     //发送方头像
          }
        }
        ...
      ]
    }
    ....
  ] 
}
方向:xxd → client

如果有通知从xxd返回,则xxd会将消息分发给对应的用户

{
  module: "chat",
  method: "notify",
  data:
  [
    {
      gid:        // 全局唯一ID
      title:      // 通知标题
      subtitle:   // 通知副标题
      content:    // 通知内容
      date:       // 通知时间戳
      contentType:// 内容格式
      url:        // 连接
      read:false  // 是否已读
      actions:[
        {
          label: // 操作标题
          url:   // 操作指向
          type:  // 操作类型
        }
      ]
      sender:{
        id:      // 发送方唯一标识
        name:    // 应用名称
        avatar:  // 发送方头像
      }
    }
    ...
  ] 
}

离线通知

请求
方向:xxd → xxb

用户登录的时候会请求未读的离线消息

{
  module: "chat",
  method: "getOfflineNotify",
  userID: //用户ID
}
响应:xxb → xxd
{
  module: "chat",
  method: "notify",
  data:
  [
    {
      gid:        // 全局唯一ID
      title:      // 通知标题
      subtitle:   // 通知副标题
      content:    // 通知内容
      date:       // 通知时间戳
      contentType:// 内容格式
      url:        // 连接
      read:false  // 是否已读
      actions:[
        {
          label:  // 操作标题
          url:    // 操作指向
          type:   // 操作类型
        }
      ]
      sender:{
        id:       // 发送方唯一标识
        name:     // 应用名称
        avatar:   // 发送方头像
      }
    }
    ...
  ] 
}

检测用户变更

请求
方向:xxd → xxb

用户登录的时候会请求未读的离线消息

{
  module: "chat",
  method: "checkUserChange",
  params: ""
}
响应:xxb → xxd
{
  module: "chat",
  method: "checkUserChange",
  data:   "yes" //是否有变更 yes或者no
}

如果返回为yes,则会请求userGetlistAPI

上传文件

请求
方向:client → xxd

客户端通过 https 向 xxd 服务器发起 POST 请求。 请求头部需要包含如下内容:

  • ServerName:然之服务器名称;

  • Authorization:用户 token;

请求表单需要包含如下字段:

  • file:文件域,包括文件名;

  • gid:该文件所属会话的 gid;

  • userID:当前用户 id;

以下为以 JavaScript 对象存储的请求数据示例:

{
  headers: {
    ServerName: "ranzhiServer1",
    Authorization: "12345678888888888888888888888888"
  },
  multipart: {
    {
      "Content-Disposition": "form-data; name="file"; filename="example.txt"",
      body: e.target.result
    }, {
      "Content-Disposition": "form-data; name="gid"",
      body: "1&2"
    }
  }
}
方向: xxd → xxb
{
  userID,
  module: "chat",
  method: "uploadFile",
  params: 
  [
    fileName, // 文件名(带扩展名)
    path,   // 文件在xxd的路径
    size,   // 文件大小
    time,   // 时间戳
    gid,    // 会话ID
  ]
}

xxd把client发送的数据转发给xxb。

响应
方向:xxb → xxd
{
  module: "chat",
  method: "uploadFile",
  users[],
  result, 
  data: fileID  // 文件在然之服务器数据库存储的id
}
方向:xxd → client

xxd 服务器在客户端发起的 POST 请求中以 JSON 文本格式返回文件基本信息。

{
  result: "success",
  data: 
  {
    url,    // 文件在xxd服务器上的下载地址(可选,无此属性会按照规则生成 URL 地址)
    time,   // 时间戳
    id,     // 文件 ID 
    name,   // 文件标题
  }
}

扩展列表

xxc登录成功后会向xxb发送一个请求,返回客户端的应用列表。

请求
方向:xxd → xxb
```js
{
  module: "chat",
  method: "serverStart"
  userID: 
}
```
响应
方向:xxb → xxd
```js
{
  result: "success",
  data: [
    {
      entryID: //应用ID,
      name: //应用识别代码,
      displayName: //显示名称,
      abbrName: //名称简写,
      webViewUrl: //应用http访问地址,
      download: //扩展配置文件下载地址,
      md5: //扩展附件md5,
      logo: //应用LOGO
    },
    ...
  ],
  users:
}
```


应用免登录入口

请求
方向:client → xxb
{
  module: "entry",
  method: "visit"
  params:{
    entryID // 应用ID
    referer // 目标地址(可选) 设置此向登录成功后将跳转到此地址,否则跳转到应用的http访问地址
  }
  userID: // 用户ID
}
返回
方向:xxb → client
{
  result: "success",
  data: "url..." // 免登录地址
}
发表评论
评论通过审核后显示。