Skip to content

更新签到配置

请求说明

  • 请求方式POST
  • 请求头Content-Type: application/json
  • 接口地址https://gateway.nuoyunapi.com/Api/Room/updateSignConfig/2.0.0
  • 频率限制:10秒100次

请求参数

参数必选类型描述
idinteger直播间ID
sign_configobject签到配置对象。不传则与默认配置合并(保留默认值)

sign_config 对象结构

注:签到配置涉及到的参数较多,建议在控制台选好之后,复用该配置进行修改。

参数必选类型描述
modeinteger签到模式:1=同个用户每天可签到一次;2=同个用户仅允许签到一次。默认 1
switchboolean签到总开关:true=开启;false=关闭。默认 true
forceSwitchinteger强制签到开关:0=关;1=开(开启后需签到才能观看)
sign_sms_switchinteger短信验证开关:1=关;2=开(需 switch=true,会按国内/国外手机号扣减短信条数,余额不足将自动关闭)
sms_verify_setinteger短信国家区分:1=允许国外;2=仅国内(短信开关为2时生效)
sign_is_dislpayinteger签到是否显示在菜单栏:1=显示;2=隐藏
sign_custom_namestring自定义菜单栏签到名称
only_menu_displayinteger仅菜单栏显示:1=是(关闭签到页且强制签到不可用);2=否
applet_custom_setinteger小程序一键获取用户信息:1=开;2=不开
configarray签到表单字段配置(见下方结构与校验规则)
keyword_hide_contentarray关键词隐藏内容数组,元素可为 {txt:"关键词"} 或直接字符串
tipstring提示文字
bgSrcstring签到背景图片完整URL,不填默认使用直播封面

config 数组元素结构(签到表单字段配置)

参数必选类型描述
keystring字段标识(自定义表单项必填,否则无法识别)
注意:目前签到表我们提供了10项,对应10个key (name,phpne,other,fourth,fifth,sixth,seventh,eigth,ninth,tenth)。key必须为这10个之一,否则用户的签到信息将无法被正确存储和展示。
titlestring字段标题(自定义表单项必填,否则前端展示异常)
typestring字段类型:text=单行文本;select=下拉框;area=地区选择
forceinteger是否必填:0=否;1=是
uniqueinteger是否唯一:0=否;1=是
placeholderstring占位符
user_inputstring自定义正则字符串。若传值必须包含 /,否则报错“请输入正确的正则表达式!”
sign_mobile_hideinteger手机号隐藏设置(仅手机号字段)
keyword_hideinteger关键词隐藏:1=开启;2=关闭
keyword_hide_listarray关键词隐藏列表
max_lengthinteger最大长度限制
optionsarray下拉选项列表(仅 select 类型,数量≤30,每个 val 长度≤25字符)
regSelectValstring预设正则选择值
text_regulararray预设正则选项列表(见下),与 user_input 二选一,不能同时选择 selected:true

options 数组元素结构(下拉选项)

参数必选类型描述
idinteger选项ID
valstring选项值

text_regular 数组元素结构(正则表达式选项)

参数必选类型描述
idinteger选项ID
namestring选项名称
contentstring正则表达式内容

说明:对于 type=textkeyname/phone 的字段,如果未提供 text_regular,后端会自动填充默认四项:不限、数字、日期、手机号码。

keyword_hide_content 数组元素结构

参数必选类型描述
idinteger关键词ID(可不传)
txtstring关键词内容(必填有效字段)

说明:后端会把数组中的 txt(或直接传的字符串)用 | 拼接存储,空或未传将存为 ""

请求示例

json
{
  "id": 1213911007,
  "sign_config": {
    "applet_custom_set": "2",
    "config": [
      {
        "force": "1",
        "key": "name",
        "placeholder": "请输入您的姓名",
        "title": "姓名",
        "unique": "0",
        "user_input": ""
      },
      {
        "force": "1",
        "key": "phone",
        "placeholder": "请输入您的手机",
        "sign_mobile_hide": 2,
        "title": "手机",
        "unique": "1",
        "user_input": ""
      },
      {
        "force": 1,
        "key": "other",
        "keyword_hide": 2,
        "keyword_hide_list": [],
        "max_length": 0,
        "options": [],
        "placeholder": "",
        "regSelectVal": "",
        "text_regular": [
          { "content": "", "id": 0, "name": "不限" },
          { "content": "/^[0-9]*$/", "id": 1, "name": "数字" },
          { "content": "/^[1-9]\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/", "id": 2, "name": "日期" },
          { "content": "/^(1[3-9])\\d{9}$/", "id": 5, "name": "手机号码" }
        ],
        "title": "医院",
        "type": "text",
        "unique": 0,
        "user_input": ""
      },
      {
        "force": 1,
        "key": "fourth",
        "keyword_hide": 2,
        "keyword_hide_list": [],
        "max_length": 0,
        "options": [],
        "placeholder": "",
        "regSelectVal": "",
        "text_regular": [
          { "content": "", "id": 0, "name": "不限" },
          { "content": "/^[0-9]*$/", "id": 1, "name": "数字" },
          { "content": "/^[1-9]\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/", "id": 2, "name": "日期" },
          { "content": "/^(1[3-9])\\d{9}$/", "id": 5, "name": "手机号码" }
        ],
        "title": "科室",
        "type": "text",
        "unique": 0,
        "user_input": ""
      },
      {
        "force": 1,
        "key": "fifth",
        "keyword_hide": 2,
        "keyword_hide_list": [],
        "max_length": 0,
        "options": [],
        "placeholder": "",
        "regSelectVal": "",
        "text_regular": [
          { "content": "", "id": 0, "name": "不限" },
          { "content": "/^[0-9]*$/", "id": 1, "name": "数字" },
          { "content": "/^[1-9]\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/", "id": 2, "name": "日期" },
          { "content": "/^(1[3-9])\\d{9}$/", "id": 5, "name": "手机号码" }
        ],
        "title": "职称",
        "type": "text",
        "unique": 0,
        "user_input": ""
      },
      {
        "force": 0,
        "key": "sixth",
        "keyword_hide": 1,
        "keyword_hide_list": ["外部关键词1", "外部关键词2"],
        "max_length": 0,
        "options": [],
        "placeholder": "",
        "regSelectVal": "",
        "text_regular": [
          { "content": "", "id": 0, "name": "不限" },
          { "content": "/^[0-9]*$/", "id": 1, "name": "数字" },
          { "content": "/^[1-9]\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/", "id": 2, "name": "日期" },
          { "content": "/^(1[3-9])\\d{9}$/", "id": 5, "name": "手机号码" }
        ],
        "title": "测试关键词得名称",
        "type": "text",
        "unique": 0,
        "user_input": ""
      },
      {
        "key": "seventh",
        "title": "测试下拉框",
        "placeholder": "",
        "unique": 0,
        "force": 0,
        "type": "select",
        "max_length": 0,
        "keyword_hide": "2",
        "options": [
          { "id": 0, "val": "下拉测试1" },
          { "id": 1, "val": "下拉测试2" }
        ],
        "regSelectVal": "",
        "user_input": "",
        "text_regular": [
          { "id": 0, "name": "不限", "content": "" },
          { "id": 1, "name": "数字", "content": "/^[0-9]*$/" },
          { "id": 2, "name": "日期", "content": "/^[1-9]\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/" },
          { "id": 5, "name": "手机号码", "content": "/^(1[3-9])\\d{9}$/" }
        ],
        "keyword_hide_list": []
      }
    ],
    "forceSwitch": 1,
    "keyword_hide_content": [
      { "id": 0, "txt": "外部关键词1" },
      { "id": 1, "txt": "外部关键词2" }
    ],
    "mode": 2,
    "only_menu_display": 2,
    "sign_custom_name": "签到",
    "sign_is_dislpay": "2",
    "sign_sms_switch": "1",
    "sms_verify_set": "2",
    "switch": true
  }
}

默认配置(未传 sign_config 时使用, 部分参数未传递时,会使用下边的参数进行替换)

json
{
  "mode": 1,
  "switch": true,
  "forceSwitch": 0,
  "sign_sms_switch": 1,
  "sign_is_dislpay": 2,
  "sign_custom_name": "签到",
  "only_menu_display": 2,
  "sms_verify_set": 2,
  "applet_custom_set": 1,
  "keyword_hide_content": [],
  "config": [
    {
      "key": "name",
      "title": "姓名",
      "placeholder": "请输入您的姓名",
      "unique": 0,
      "force": 1
    },
    {
      "key": "phone",
      "title": "手机号",
      "placeholder": "请输入您的手机号",
      "sign_mobile_hide": 2,
      "unique": 1,
      "force": 1
    }
  ]
}

默认配置效果说明

  • 模式与开关:mode=1(每日一次),switch=true 启用签到,forceSwitch=0 不强制签到。
  • 短信相关:sign_sms_switch=1 关闭短信验证;sms_verify_set=2 仅国内(但因短信关闭不生效)。
  • 菜单显示:sign_is_dislpay=2 默认不在菜单栏展示;only_menu_display=2 保留签到页;菜单/自定义名称均为“签到”。
  • 小程序:applet_custom_set=1 默认开启一键获取用户信息。
  • 关键词隐藏:默认空数组。
  • 表单字段:仅包含必填的姓名、手机号;手机号 sign_mobile_hide=2(不隐藏)。

响应参数

参数必选类型描述
codeinteger状态码
msgstring提示信息
dataobject响应数据

响应示例

成功响应

json
{
  "code": 200,
  "data": {},
  "msg": "操作成功!"
}

校验与注意事项

  1. 开关依赖:开启短信验证需 switch=true;短信余额不足会自动关闭 sign_sms_switch
  2. 下拉框限制:options 数量 ≤ 30;每个 val 长度 ≤ 25 字符。
  3. 自定义正则:user_input 需包含 /;若提供 user_inputtext_regular 中不能出现 selected: "true"(否则报“请选择正确的文本项!”)。
  4. 正则默认填充:type=textkeyname/phone 时,未提供 text_regular 会被后端自动填充默认四项。
  5. user_input 缺省时后端会补空字符串。
  6. keyword_hide_content 会被拼接为 txt(或字符串)用 | 组合存储;无效或未传存为 ""id 不参与处理可不传。
  7. only_menu_display=1 会关闭签到页且强制签到不可用,仅菜单栏入口可见。
  8. 建议同时设置 sign_is_dislpaysign_custom_name 保证菜单栏展示一致。