[comment]: # ({16011390-16011390})
# mediatype.get

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

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

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

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

::: noteclassic
此方法仅对*管理员*和*超级管理员*用户类型可用。
调用该方法的权限可以在用户角色设置中撤销。
更多信息请参阅[User roles](/manual/web_interface/frontend_sections/administration/user_roles)。

:::

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

[comment]: # ({2b1e2a3f-dde2e026})
### 参数

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

该方法支持以下参数。

::: noteclassic
自Zabbix 6.0.34起，当请求媒体类型的用户相关信息时，*Admin*类型用户可能仅能检索其自身用户的数据。
例如，请参阅[以*Admin*身份检索媒体类型](#retrieving-media-types-as-admin)。

:::

| 参数 | [数据类型](/manual/api/reference_commentary#数据类型) | 描述 |
|--|--|------|
| mediatypeids | string/array | 仅返回具有给定ID的媒体类型。 |
| mediaids | string/array | 仅返回由给定[媒介](/manual/api/reference/user/object#媒介)使用的媒体类型。 |
| userids | string/array | 仅返回由给定用户使用的媒体类型。 |
| selectMessageTemplates | query | 返回一个[消息模板](/manual/api/reference/mediatype/object#消息模板)属性，包含媒体类型消息的array。<br><br>自Zabbix 6.0.34起，此参数仅支持*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>接受一个object，其中键为属性名，值为单个值或用于匹配的array。<br><br>不支持`text`[数据类型](/manual/api/reference_commentary#数据类型)的属性。<br><br>*Admin*类型用户（自Zabbix 6.0.34起）可能的[Media type object](/manual/api/reference/mediatype/object)属性：`mediatypeid`, `name`, `type`, `status`, `maxattempts`。 |
| output | query | 要返回的[Media type object](/manual/api/reference/mediatype/object)属性。<br><br>自Zabbix 6.0.34起，*Admin*类型用户可能仅能检索以下属性：`mediatypeid`, `name`, `type`, `status`, `maxattempts`, `description`。例如，请参阅[以*Admin*身份检索媒体类型](#retrieving-media-types-as-admin)。<br><br>默认值：`extend`。 |
| search | object | 返回与给定模式匹配的结果（不区分大小写）。<br><br>接受一个object，其中键为属性名，值为要搜索的字符串。如果未提供额外选项，将执行`LIKE "%…%"`搜索。<br><br>仅支持`string`和`text`[数据类型](/manual/api/reference_commentary#数据类型)的属性。<br><br>*Admin*类型用户（自Zabbix 6.0.34起）可能的[Media type object](/manual/api/reference/mediatype/object)属性：`name`, `description`。 |
| countOutput | boolean | 这些参数在[通用get方法参数](/manual/api/reference_commentary#通用get方法参数)中有描述。 |
| editable | boolean | ^           |
| excludeSearch | boolean | ^           |
| limit | integer | ^           |
| preservekeys | boolean | ^           |
| searchByAny | boolean | ^           |
| searchWildcardsEnabled | boolean | ^           |
| sortorder | string/array | ^           |
| startSearch | boolean | ^           |

[comment]: # ({/2b1e2a3f-dde2e026})

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

`(integer/array)` 返回以下两种情况之一:

-   一个由array组成的objects数组
-   如果使用了`countOutput`参数，则返回检索到的objects数量

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

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

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

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

获取所有已配置的媒介类型.

请求:

```json
{
    "jsonrpc": "2.0",
    "method": "mediatype.get",
    "params": {
        "output": "extend",
        "selectMessageTemplates": "extend"
    },
    "auth": "038e1d7b1735c6a5436ee9eae095879e",
    "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",
            "exec_params": "",
            "maxsessions": "1",
            "maxattempts": "3",
            "attempt_interval": "10s",
            "content_type": "0",
            "script": "",
            "timeout": "30s",
            "process_tags": "0",
            "show_event_menu": "1",
            "event_menu_url": "",
            "event_menu_name": "",
            "description": "",
            "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 status 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",
            "exec_params": "",
            "maxsessions": "1",
            "maxattempts": "3",
            "attempt_interval": "10s",
            "content_type": "1",
            "script": "",
            "timeout": "30s",
            "process_tags": "0",
            "show_event_menu": "1",
            "event_menu_url": "",
            "event_menu_name": "",
            "description": "",
            "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]: # ({/d93b7c30-173c5ab7})

[comment]: # ({0bbc82e6-eaeb7237})
#### 以*管理员*身份检索媒介类型

以*管理员*类型用户身份，检索所有已启用的媒介类型及其关联用户。
以下示例返回两种媒介类型：

- 电子邮件媒介类型关联一个用户（自Zabbix 6.0.34起，仅返回*管理员*类型用户自身）；
- 短信媒介类型未关联任何用户。

请求：

```json
{
    "jsonrpc": "2.0",
    "method": "mediatype.get",
    "params": {
        "output": "extend",
        "filter": {
            "status": 0
        },
        "selectUsers": "extend"
    },
    "auth": "038e1d7b1735c6a5436ee9eae095879e",
    "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"
                }
            ]
        },
        {
            "mediatypeid": "3",
            "type": "2",
            "name": "SMS",
            "status": "0",
            "description": "",
            "maxattempts": "3",
            "users": []
        }
    ],
    "id": 1
}
```

[comment]: # ({/0bbc82e6-eaeb7237})

[comment]: # ({039ccba1-039ccba1})
### 另请参阅

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

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

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

CMediaType::get() 位于 *ui/include/classes/api/services/CMediaType.php* 文件中。

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