[comment]: # translation:outdated

[comment]: # ({16011390-16011390})
# 获取

[comment]: # ({/16011390-16011390})

[comment]: # ({b6b5b44e-10e7fdda})
### 描述

`integer/array mediatype.get(object parameters)`

该方法允许根据给定参数检索媒体类型。

::: noteclassic
任何类型的用户都可以使用此方法。
调用该方法的权限可在用户角色设置中撤销。
更多信息请参见 [用户角色](/manual/web_interface/frontend_sections/users/user_roles)。
:::

[comment]: # ({/b6b5b44e-10e7fdda})

[comment]: # ({1f99b3dc-dde2e026})
### 参数

`(object)` 定义所需输出的参数。

该方法支持以下参数。

::: noteclassic
请求媒体类型的用户相关信息时，*Admin* 和 *User* 类型的用户只能检索其自身用户的数据。
示例请参见[以 *Admin* 身份检索媒体类型](#retrieving-media-types-as-admin)。
:::

|参数|[类型](/manual/api/reference_commentary#data-types)|描述|
|--|--|------|
|mediatypeids|ID/array|仅返回具有给定 ID 的媒体类型。|
|mediaids|ID/array|仅返回被给定[媒介](/manual/api/reference/user/object#media)使用的媒体类型。|
|userids|ID/array|仅返回被给定用户使用的媒体类型。|
|selectActions|query|返回一个 [`actions`](/manual/api/reference/action/object) 属性，其中包含使用该媒体类型的动作。|
|selectMessageTemplates|query|返回一个 [`message_templates`](/manual/api/reference/mediatype/object#message-template) 属性，其中包含媒体类型消息数组。<br><br>[参数行为](/manual/api/reference_commentary#parameter-behavior)：<br>- 对 *Super admin* 类型用户*支持*|
|selectUsers|query|返回一个 [`users`](/manual/api/reference/user/object) 属性，其中包含使用该媒体类型的用户。<br><br>有关基于用户类型的限制，请参见 [`user.get`](/manual/api/reference/user/get)。|
|sortfield|string/array|按给定属性对结果进行排序。<br><br>可能的值：`mediatypeid`。|
|filter|object|仅返回与给定过滤条件完全匹配的结果。<br><br>接受一个对象，其中键为属性名称，值为单个值或用于匹配的值数组。<br><br>不支持 `text` [数据类型](/manual/api/reference_commentary#data-types) 的属性。<br><br>*Admin* 和 *User* 类型用户可用的 [媒体类型对象](/manual/api/reference/mediatype/object) 属性：`mediatypeid`、`name`、`type`、`status`、`maxattempts`。|
|output|query|要返回的[媒体类型对象](/manual/api/reference/mediatype/object)属性。<br><br>*Admin* 和 *User* 类型用户只能检索以下属性：`mediatypeid`、`name`、`type`、`status`、`maxattempts`、`description`。示例请参见[以 *Admin* 身份检索媒体类型](#retrieving-media-types-as-admin)。<br><br>默认值：`extend`。|
|search|object|返回与给定模式匹配的结果（不区分大小写）。<br><br>接受一个对象，其中键为属性名称，值为要搜索的字符串。如果未提供其他选项，将执行 `LIKE "%…%"` 搜索。<br><br>仅支持 `string` 和 `text` [数据类型](/manual/api/reference_commentary#data-types) 的属性。<br><br>*Admin* 和 *User* 类型用户可用的 [媒体类型对象](/manual/api/reference/mediatype/object) 属性：`name`、`description`。|
|countOutput|boolean|这些参数在[参考说明](/manual/api/reference_commentary#common-get-method-parameters)中进行了描述。|
|editable|boolean|^|
|excludeSearch|boolean|^|
|limit|integer|^|
|preservekeys|boolean|^|
|searchByAny|boolean|^|
|searchWildcardsEnabled|boolean|^|
|sortorder|string/array|^|
|startSearch|boolean|^|

[comment]: # ({/1f99b3dc-dde2e026})

[comment]: # ({7223bab1-7223bab1})
### 返回值

`(整型/数组)` 返回其中之一：

-   一个对象数组；
-   如果使用`countOutput`参数，返回被检索对象的数量。

[comment]: # ({/7223bab1-7223bab1})

[comment]: # ({b41637d2-b41637d2})
### 示例

[comment]: # ({/b41637d2-b41637d2})

[comment]: # ({b4639c84-173c5ab7})
#### 检索媒介类型

检索所有已配置的媒介类型。以下示例返回两种媒介类型：

- 电子邮件媒介类型；
- SMS 媒介类型。

[请求](/manual/api#performing-requests)：

```json
{
    "jsonrpc": "2.0",
    "method": "mediatype.get",
    "params": {
        "output": "extend",
        "selectMessageTemplates": "extend"
    },
    "id": 1
}
```

响应：

```json
{
    "jsonrpc": "2.0",
    "result": [
        {
            "mediatypeid": "1",
            "type": "0",
            "name": "Email",
            "smtp_server": "mail.example.com",
            "smtp_helo": "example.com",
            "smtp_email": "zabbix@example.com",
            "exec_path": "",
            "gsm_modem": "",
            "username": "",
            "passwd": "",
            "status": "0",
            "smtp_port": "25",
            "smtp_security": "0",
            "smtp_verify_peer": "0",
            "smtp_verify_host": "0",
            "smtp_authentication": "0",
            "maxsessions": "1",
            "maxattempts": "3",
            "attempt_interval": "10s",
            "message_format": "0",
            "script": "",
            "timeout": "30s",
            "process_tags": "0",
            "show_event_menu": "1",
            "event_menu_url": "",
            "event_menu_name": "",
            "description": "",
            "provider": "0",
            "message_templates": [
                {
                    "eventsource": "0",
                    "recovery": "0",
                    "subject": "Problem: {EVENT.NAME}",
                    "message": "Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\nOperational data: {EVENT.OPDATA}\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}"
                },
                {
                    "eventsource": "0",
                    "recovery": "1",
                    "subject": "Resolved: {EVENT.NAME}",
                    "message": "Problem has been resolved at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}\r\nProblem name: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\nSeverity: {EVENT.SEVERITY}\r\n\r\nOriginal problem ID: {EVENT.ID}\r\n{TRIGGER.URL}"
                },
                {
                    "eventsource": "0",
                    "recovery": "2",
                    "subject": "Updated problem: {EVENT.NAME}",
                    "message": "{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\n{EVENT.UPDATE.MESSAGE}\r\n\r\nCurrent problem state is {EVENT.STATUS}, acknowledged: {EVENT.ACK.STATUS}."
                },
                {
                    "eventsource": "1",
                    "recovery": "0",
                    "subject": "Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}",
                    "message": "Discovery rule: {DISCOVERY.RULE.NAME}\r\n\r\nDevice IP: {DISCOVERY.DEVICE.IPADDRESS}\r\nDevice DNS: {DISCOVERY.DEVICE.DNS}\r\nDevice status: {DISCOVERY.DEVICE.STATUS}\r\nDevice uptime: {DISCOVERY.DEVICE.UPTIME}\r\n\r\nDevice service name: {DISCOVERY.SERVICE.NAME}\r\nDevice service port: {DISCOVERY.SERVICE.PORT}\r\nDevice service status: {DISCOVERY.SERVICE.STATUS}\r\nDevice service uptime: {DISCOVERY.SERVICE.UPTIME}"
                },
                {
                    "eventsource": "2",
                    "recovery": "0",
                    "subject": "Autoregistration: {HOST.HOST}",
                    "message": "Host name: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}"
                }
            ],
            "parameters": []
        },
        {
            "mediatypeid": "3",
            "type": "2",
            "name": "SMS",
            "smtp_server": "",
            "smtp_helo": "",
            "smtp_email": "",
            "exec_path": "",
            "gsm_modem": "/dev/ttyS0",
            "username": "",
            "passwd": "",
            "status": "0",
            "smtp_port": "25",
            "smtp_security": "0",
            "smtp_verify_peer": "0",
            "smtp_verify_host": "0",
            "smtp_authentication": "0",
            "maxsessions": "1",
            "maxattempts": "3",
            "attempt_interval": "10s",
            "message_format": "1",
            "script": "",
            "timeout": "30s",
            "process_tags": "0",
            "show_event_menu": "1",
            "event_menu_url": "",
            "event_menu_name": "",
            "description": "",
            "provider": "0",
            "message_templates": [
                {
                    "eventsource": "0",
                    "recovery": "0",
                    "subject": "",
                    "message": "{EVENT.SEVERITY}: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\n{EVENT.DATE} {EVENT.TIME}"
                },
                {
                    "eventsource": "0",
                    "recovery": "1",
                    "subject": "",
                    "message": "RESOLVED: {EVENT.NAME}\r\nHost: {HOST.NAME}\r\n{EVENT.DATE} {EVENT.TIME}"
                },
                {
                    "eventsource": "0",
                    "recovery": "2",
                    "subject": "",
                    "message": "{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}"
                },
                {
                    "eventsource": "1",
                    "recovery": "0",
                    "subject": "",
                    "message": "Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}"
                },
                {
                    "eventsource": "2",
                    "recovery": "0",
                    "subject": "",
                    "message": "Autoregistration: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}"
                }
            ],
            "parameters": []
        }
    ],
    "id": 1
}
```

[comment]: # ({/b4639c84-173c5ab7})

[comment]: # ({5b0f82b1-0576a674})
#### 以 *Admin* 身份检索媒体类型

作为 *Admin* 类型用户，检索所有已启用的媒体类型，以及使用这些媒体类型的用户。
以下示例返回两种媒体类型：

- 电子邮件媒体类型，包含一个用户（仅 *Admin* 类型用户自己的用户）；
- SMS 媒体类型，不包含任何用户。

[请求](/manual/api#performing-requests)：

```json
{
    "jsonrpc": "2.0",
    "method": "mediatype.get",
    "params": {
        "output": "extend",
        "filter": {
            "status": 0
        },
        "selectUsers": "extend"
    },
    "id": 1
}
```

响应：

```json
{
    "jsonrpc": "2.0",
    "result": [
        {
            "mediatypeid": "1",
            "type": "0",
            "name": "Email",
            "status": "0",
            "description": "",
            "maxattempts": "3",
            "users": [
                {
                    "userid": "3",
                    "username": "database-admin",
                    "name": "John",
                    "surname": "Doe",
                    "url": "",
                    "autologin": "0",
                    "autologout": "0",
                    "lang": "default",
                    "refresh": "30s",
                    "theme": "default",
                    "attempt_failed": "0",
                    "attempt_ip": "",
                    "attempt_clock": "0",
                    "rows_per_page": "50",
                    "timezone": "default",
                    "roleid": "2",
                    "provisioned": "0"
                }
            ]
        },
        {
            "mediatypeid": "3",
            "type": "2",
            "name": "SMS",
            "status": "0",
            "description": "",
            "maxattempts": "3",
            "users": []
        }
    ],
    "id": 1
}
```

[comment]: # ({/5b0f82b1-0576a674})

[comment]: # ({fcea1a0a-621ff52f})
#### 检索脚本和 webhook 媒介类型

以下示例返回三种媒介类型：

-   带参数的脚本媒介类型;
-   不带参数的脚本媒介类型;
-   带参数的 Webhook 媒介类型。

[请求](/manual/api#performing-requests)：

```json
{
    "jsonrpc": "2.0",
    "method": "mediatype.get",
    "params": {
        "output": ["mediatypeid", "name", "parameters"],
        "filter": {
            "type": [1, 4]
        }
    },
    "id": 1
}
```

响应：

```json
{
    "jsonrpc": "2.0",
    "result": [
        {
            "mediatypeid": "10",
            "name": "Script with parameters",
            "parameters": [
                {
                    "sortorder": "0",
                    "value": "{ALERT.SENDTO}"
                },
                {
                    "sortorder": "1",
                    "value": "{EVENT.NAME}"
                },
                {
                    "sortorder": "2",
                    "value": "{ALERT.MESSAGE}"
                },
                {
                    "sortorder": "3",
                    "value": "Zabbix alert"
                }
            ]
        },
        {
            "mediatypeid": "13",
            "name": "Script without parameters",
            "parameters": []
        },
        {
            "mediatypeid": "11",
            "name": "Webhook",
            "parameters": [
                {
                    "name": "alert_message",
                    "value": "{ALERT.MESSAGE}"
                },
                {
                    "name": "event_update_message",
                    "value": "{EVENT.UPDATE.MESSAGE}"
                },
                {
                    "name": "host_name",
                    "value": "{HOST.NAME}"
                },
                {
                    "name": "trigger_description",
                    "value": "{TRIGGER.DESCRIPTION}"
                },
                {
                    "name": "trigger_id",
                    "value": "{TRIGGER.ID}"
                },
                {
                    "name": "alert_source",
                    "value": "Zabbix"
                }
            ]
        }
    ],
    "id": 1
}
```

[comment]: # ({/fcea1a0a-621ff52f})

[comment]: # ({039ccba1-039ccba1})
### 参见

-   [用户](/manual/api/reference/user/object#用户)

[comment]: # ({/039ccba1-039ccba1})

[comment]: # ({b9d01f00-b9d01f00})
### 来源 

*ui/include/classes/api/services/CMediaType.php* 中的 CMediaType::get()。

[comment]: # ({/b9d01f00-b9d01f00})
