更改通知条件(记录)

betsy_yan发表于:2021年02月24日 17:01:28更新于:2021年12月22日 10:23:31

更改通知条件(记录)的设置。

此API仅将应用的更改反映到确认应用各动作的测试环境中。
如需反映到正式环境,执行本API后,需要执行将应用的设置反映到正式环境中API

URI

https://(子域名).cybozu.cn/k/v1/preview/app/notifications/perRecord.json

来宾空间内的应用:https://(子域名).cybozu.cn/k/guest/(空间ID)/v1/preview/app/notifications/perRecord.json

HTTP方法

PUT

必要的访问权限

应用的管理权限

请求参数

参数名称要指定的值必须说明
app数值或字符串必须指定应用的ID。
notifications数组必须

用于存放设置通知条件对象的数组。

添加或更新通知条件的设置时,必须为所有现有的通知条件的设置指定出它的“notifications”。
如果指定了空数组,则删除所有通知条件的设置。

notifications[].filterCond
条件必须

以查询形式指定记录的条件。指定“notifications”参数时必须指定此参数。
有关查询形式请参考以下页面。 
批量获取记录(在查询中指定条件)

如果省略,则查询对象为“所有记录”。

notifications[].title

指定通知内容。

如果省略,则为空字符。

notifications[].targets
条件必须

指定通知对象。指定“notifications”参数时必须指定此参数。
如果指定了空数组,则使用无通知对象的设置进行更新。

notifications[].targets[].entity对象条件必须表示设置通知条件对象的对象。指定“targets”参数时必须指定此参数。
notifications[].targets[].entity.type字符串条件必须设置通知条件对象的类型。指定“entity”参数时必须指定此参数。
  • USER:用户

  • GROUP:组

  • ORGANIZATION:组织

  • FIELD_ENTITY:创建人 / 更新人 / 选择用户 / 选择组织 / 选择组字段

notifications[].targets[].entity.code字符串条件必须指定设置通知条件对象的字段代码。指定“entity”参数时必须指定此参数。
“notifications[].entity.type”参数中指定“FIELD_ENTITY”时,请指定字段代码。
如果是来宾用户,在用户名前加上“guest/”。
notifications[].targets[].includeSubs布尔值或字符串
指定是否将设置继承给其下属组织。
  • 继承:true

  • 不继承(初始值):false

仅当 notifications[].targets[].entity.type 在 ORGANIZATION 或 FIELD_ENTITY 中指定了选择组织字段时才有效。
省略时为false。

revision数值或字符串
指定更改应用设定前的修订号。
如指定的修订版本不是最新时,则请求失败。
如省略或指定为"-1"时,则不检查修订。

请求的范例

头部

PUT /k/v1/preview/app/notifications/perRecord.json HTTP/1.1
Host: example.cybozu.cn:443
X-Cybozu-Authorization: QWRtaW5pc3RyYXRvcjpjeWJvenU=
Authorization: Basic QWRtaW5pc3RyYXRvcjpjeWJvenU=
Content-Type: application/json


正文

{
  "app": "1",
  "notifications": [
    {
      "filterCond": "选择用户字段 in (\"user1\")",
      "title": "已选择user1",
      "targets": [
        {
          "entity": {
            "type": "USER",
            "code": "user1"
          },
          "includeSubs": false
        }
      ]
    }
  ],
  "revision": "2"
}


应答参数

参数名称值的类型说明
revision字符串更改应用设定后的修订版号。

应答的范例

{
  "revision": "2"
}


JavaScript范例

使用API请求发送 kintone REST API 请求

var body = {
  'app': kintone.app.getId(),
  'notifications': [{
    'filterCond': '选择用户字段 in ("user1")',
    'title': '已选择user1',
    'targets': [{
      'entity': {
        'type': 'USER',
        'code': 'user1'
      },
      'includeSubs': false
    }]
  }],
  'revision': '2'
};
kintone.api(kintone.api.url('/k/v1/preview/app/notifications/perRecord', true), 'PUT', body, function(resp) {
  // success
  console.log(resp);
}, function(error) {
  // error
  console.log(error);
});


使用 XMLHttpRequest 请求

var body = {
  'app': kintone.app.getId(),
  'notifications': [{
    'filterCond': '选择用户字段 in ("user1")',
    'title': '已选择user1',
    'targets': [{
      'entity': {
        'type': 'USER',
        'code': 'user1'
      },
      'includeSubs': false
    }]
  }],
  'revision': '2',
  // CSRF TOKEN: 在kintone上执行API(POST,PUT,DELETE)时必须设置
  '__REQUEST_TOKEN__': kintone.getRequestToken()
};
var url = 'https://{subdomain}.cybozu.cn/k/v1/preview/app/notifications/perRecord.json';
var xhr = new XMLHttpRequest();
xhr.open('PUT', url);
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.onload = function() {
  if (xhr.status === 200) {
    // success
    console.log(JSON.parse(xhr.responseText));
  } else {
    // error
    console.log(JSON.parse(xhr.responseText));
  }
};
xhr.send(JSON.stringify(body));