import json, ssl, urllib.request ctx = ssl.create_default_context() ctx.check_hostname = False ctx.verify_mode = ssl.CERT_NONE ZABBIX_URL = 'http://140.44.4.60:8888/api_jsonrpc.php' payload = {'jsonrpc': '2.0', 'method': 'user.login', 'params': {'username': 'Admin', 'password': 'zabbix'}, 'id': 1} req = urllib.request.Request(ZABBIX_URL, data=json.dumps(payload).encode(), headers={'Content-Type': 'application/json-rpc'}) token = json.loads(urllib.request.urlopen(req, context=ctx).read())['result'] media_payload = { 'jsonrpc': '2.0', 'method': 'user.update', 'params': { 'userid': '3', 'medias': [ { 'mediatypeid': '70', 'sendto': 'snarf@snarfnet.net', 'active': 0, 'severity': 63, # 1+2+4+8+16+32 'period': '1-7,00:00-24:00' } ] }, 'id': 2 } req = urllib.request.Request(ZABBIX_URL, data=json.dumps(media_payload).encode(), headers={'Content-Type': 'application/json-rpc', 'Authorization': f'Bearer {token}'}) res = json.loads(urllib.request.urlopen(req, context=ctx).read()) print("User update result:", res)