获取通知条件(提醒)

cybozu发表于:2021年02月25日 14:06:13更新于:2022年05月07日 16:53:07

这是获取通知条件(提醒)的API。


URI

URI根据正式环境还是测试环境的不同而不同。


获取正式环境的设置时

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

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


获取测试环境的设置时

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


HTTP方法

GET


必要的访问权限

应用的管理权限


请求参数

参数名称要指定的值必须说明
app数值或字符串必须指定应用的ID。
lang字符串
如果对字段名称或选项名称设置了“多语言”,需要指定要获取语言的名称。
  • 获取日语的名称时:ja

  • 获取英语的名称时:en

  • 获取中文的名称时:zh

  • 获取登录用户的语言设置时:user*

  • *当登录用户的语言设置为“与Web浏览器的设置相同”时,

  • 如果头部中指定“Accept-Language”,则使用该设置。

  • 如果不指定“Accept-Language”,则使用cybozu.cn系统管理的“本地化设置”中的语言设置。

  • 获取默认的名称时:default

省略时,获取默认名称。


请求的范例

要发送的请求根据参数发送方式的不同而不同。以下是指定参数“app”和“lang”的请求的例子。

URL中包含参数时

GET /k/v1/app/notifications/reminder.json?app=1&lang=ja HTTP/1.1 
    Host: example.cybozu.cn:443
    X-Cybozu-Authorization: QWRtaW5pc3RyYXRvcjpjeWJvenU=
    Authorization: Basic QWRtaW5pc3RyYXRvcjpjeWJvenU=


请求正文中包含参数时
头部

GET /k/v1/app/notifications/reminder.json HTTP/1.1   
    Host: example.cybozu.cn:443
    X-Cybozu-Authorization: QWRtaW5pc3RyYXRvcjpjeWJvenU=
    Authorization: Basic QWRtaW5pc3RyYXRvcjpjeWJvenU=正文

正文

{   
  "app": 1,
  "lang": "zh" 
}


应答参数

参数名称值的类型说明
notifications数组用于存放设置通知条件对象的数组。
notifications[].timing对象表示通知时间的对象。
notifications[].timing.code字符串通知时间中被设置为基准时间的字段代码。
notifications[].timing.daysLater字符串基准时间几天后(几天前)发出通知的设置。
设置为基准时间前的时间用负整数表示。
notifications[].timing.hoursLater字符串

基准时间加上 daysLater 几小时后(几小时前)发出通知的设置。
设置为基准时间前的时间用负整数表示。
基准时间所表示的字段设置为“指定相对时间”时,则返回该值。

notifications[].timing.time字符串

基准时间加上 daysLater 后当天的几点发出通知的设置。
基准时间所表示的字段设置为“指定绝对时间”时,则返回该值。

notifications[].fiterCond字符串提醒的通知条件。用查询语句格式表示。
关于查询语句的格式请参考以下页面。
批量获取记录(在查询中指定条件)
如指定了已删除的用户、组织、组时,将发生错误。
notifications[].title字符串通知条件(提醒)的通知内容。
notifications[].targets数组表示通知对象的数组。
notifications[].targets[].entity对象表示通知对象的对象。
notifications[].targets[].entity.type字符串通知对象的类型。
  • USER:用户

  • GROUP:组

  • ORGANIZATION:组织

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

notifications[].targets[].entity.code字符串通知对象的字段代码。
根据 notifications[].targets[].entity.type 的值,返回如下值。
  • FIELD_ENTITY时:创建人 / 更新人 / 执行者 / 选择用户 / 选择组织 / 选择组字段的字段代码

  • 除此以外:通知的对象

如果是来宾用户,在用户名前加上“guest/”。
notifications[].targets[].includeSubs布尔值是否将设置继承给其下属组织。

除非 notifications[].entity.type 在 ORGANIZATION 或 FIELD_ENTITY 中指定了选择组织字段,否则始终返回False。

  • true:继承

  • false:不继承

timezone字符串提醒时间的时区。
通知条件(提醒)从未被设置过时,则返回 null 。
revision字符串应用的设定的修订号。

应答的范例

{
  "notifications": [
    {
      "timing": {
        "code": "创建日期和时间",
        "daysLater": "1",
        "hoursLater": "2"
      },
      "filterCond": "选择用户字段 in (\"user1\")",
      "title": "提醒",
      "targets": [
        {
          "entity": {
            "type": "USER",
            "code": "user1"
          },
          "includeSubs": false
        }
      ]
    },
    {
      "timing": {
        "code": "创建日期",
        "daysLater": "-3",
        "time": "08:30"
      },
      "filterCond": "选择用户字段 in (\"user1\")",
      "title": "提醒",
      "targets": [
        {
          "entity": {
            "type": "USER",
            "code": "user1"
          },
          "includeSubs": false
        }
      ]
    }
  ],
  "timezone": "Asia/Shanghai",
  "revision": "2"
}

JavaScript范例

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

var body = {
  'app': kintone.app.getId(),
  'lang': 'zh'
};

kintone.api(kintone.api.url('/k/v1/app/notifications/reminder', true), 'GET', body, function(resp) {
  // success
  console.log(resp);
}, function(error) {
  // error
  console.log(error);
});


使用 XMLHttpRequest 请求

var appId = kintone.app.getId();
var url = 'https://{subdomain}.cybozu.cn/k/v1/app/notifications/reminder.json?app=' + appId + '&lang=zh';

var xhr = new XMLHttpRequest();
xhr.open('GET', url);
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xhr.onload = function() {
  if (xhr.status === 200) {
    // success
    console.log(JSON.parse(xhr.responseText));
  } else {
    // error
    console.log(JSON.parse(xhr.responseText));
  }
};

xhr.send();