更改应用的分享设置

betsy_yan发表于:2021年03月18日 11:36:57更新于:2023年02月16日 17:37:00

更新应用的分享设置。
如在应用中存在两个名字一样的分享,或更新后分享名重复,则在调用该API时会报错。

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

URI

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

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

HTTP方法

PUT

必要的访问权限

应用的管理权限

请求参数

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

表示分享设置的对象。

actions.(分享名称)对象

表示各个分享设置的对象。

在“(分享名称)”中指定更新前的分享名称。
指定的“分享名称”不存在时,将其添加为新分享。

添加、更新分享时,所有现有的分享必须指定“(分享名称)”。如未指定,则删除该分享。

actions.(分享名称).name字符串条件必须

“分享名称”在1到32个字符之间。

更改或新建分享时,必需。

更改“分享名称”时,指定更改后的“分享名称”。
新建时,请指定与“(分享名称)”相同的值。
省略时,不更新。

actions.(分享名称).index数值或字符串条件必须

指定分享的显示顺序。
分享按照指定数字的升序排序。

指定“(分享名称)”时,必需。

actions.(分享名称).destApp对象条件必须

表示“分享到”的应用信息的对象。

新建时,必需。
省略时,不更新。

actions.(分享名称).destApp.app数值或字符串条件必须

指定“分享到”应用的应用ID。

未指定“actions.(分享名称).destApp.code”时,必需。

actions.(分享名称).destApp.code字符串条件必须

指定“分享到”应用的应用代码。

未指定“actions.(分享名称).destApp.app”时,必需。
同时指定两者时,则 code 优先。

指定了 null 或空字符时,视为未指定。

actions.(分享名称).mappings数组条件必须

表示“关联字段”的数组。

新建分享或指定“actions.(分享名称).destApp”时,必需。
省略时,不更新。

指定空数组时,设置为没有“关联字段”。

actions.(分享名称).mappings[].srcType字符串条件必须

指定“分享来源”的类型。
可以指定以下值。

  • FIELD:字段

  • RECORD_URL:记录的 URL

指定“actions.(分享名称).mappings”,时,必需。

actions.(分享名称).mappings[].srcField字符串条件必须

指定为“分享来源”的字段的字段代码。
“actions.(分享名称).mappings[].srcType”为 FIELD 时,必需。

actions.(分享名称).mappings[].destField字符串条件必须

指定为“分享到”的字段的字段代码。

指定“actions.(分享名称).mappings”时,必需。

actions.(分享名称).entities数组条件必须

表示“使用者”的数组。

新建分享时,必需。
省略时,不更新。

指定空数组时,设置为没有“使用者”。

actions.(分享名称).entities[].type字符串条件必须

指定“使用者”的类型。
可以指定以下值。

  • USER:用户

  • GROUP:组

  • ORGANIZATION:组织
    不能指定来宾空间。

指定“actions.(分享名称).entities”时,必需。

actions.(分享名称).entities[].code字符串条件必须

指定“使用者”的字段代码。

如果是来宾用户,在用户名前加上“guest/”。

指定“actions.(分享名称).entities”时,必需。

revision数值或字符串

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

应答的范例

头部

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


正文

{
  "app": "1",
  "actions": {
    "添加订单管理": {
      "name": "添加订单管理",
      "index": "0",
      "destApp": {
        "code": "INVOICE"
      },
      "mappings": [
        {
          "srcType": "FIELD",
          "srcField": "CompanyName",
          "destField": "CompanyName"
        },
        {
          "srcType": "FIELD",
          "srcField": "DivisionName",
          "destField": "DivisionName"
        },
        {
          "srcType": "RECORD_URL",
          "destField": "URL"
        }
      ],
      "entities": [
        {
          "type": "USER",
          "code": "userA"
        }
      ]
    }
  },
  "revision": "2"
}


应答参数

参数名称值的类型说明
actions对象表示分享信息的对象。
actions.(分享名称).id字符串分享的ID。
revision字符串更改应用设定后的修订号。

应答的范例

{
  "revision": "2",
  "actions": {
    "添加订单管理": {
      "id": "7319"
    }
  }
}


JavaScript 范例

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

var body = {
  'app': kintone.app.getId(),
  'actions': {
    '添加订单管理': {
      'name': '添加订单管理',
      'index': '0',
      'destApp': {
        'code': 'INVOICE',
      },
      'mappings': [
        {
          'srcType': 'FIELD',
          'srcField': 'CompanyName',
          'destField': 'CompanyName',
        },
        {
          'srcType': 'FIELD',
          'srcField': 'DivisionName',
          'destField': 'DivisionName',
        },
        {
          'srcType': 'RECORD_URL',
          'destField': 'URL',
        },
      ],
      'entities': [
        {
          'type': 'USER',
          'code': 'userA',
        },
      ],
    },
  },
};
kintone.api(kintone.api.url('/k/v1/preview/app/actions', true), 'PUT', body, function(resp) {
  // success
  console.log(resp);
}, function(error) {
  // error
  console.log(error);
});


XMLHttpRequest

var body = {
  'app': kintone.app.getId(),
  'actions': {
    '添加订单管理': {
      'name': '添加订单管理',
      'index': '0',
      'destApp': {
        'code': 'INVOICE',
      },
      'mappings': [
        {
          'srcType': 'FIELD',
          'srcField': 'CompanyName',
          'destField': 'CompanyName',
        },
        {
          'srcType': 'FIELD',
          'srcField': 'DivisionName',
          'destField': 'DivisionName',
        },
        {
          'srcType': 'RECORD_URL',
          'destField': 'URL',
        },
      ],
      'entities': [
        {
          'type': 'USER',
          'code': 'userA',
        },
      ],
    },
  },
};
var url = 'https://{subdomain}.cybozu.cn/k/v1/preview/app/actions.json';
var xhr = new XMLHttpRequest();
xhr.open('PUT', 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();