La sección identifica todos los servicios admitidos por esta biblioteca. Consulte la wiki para obtener más información sobre los módulos compatibles aquí.
La siguiente tabla identifica los servicios que admite esta herramienta y algunos ejemplos de URL de servicios que debe utilizar para aprovecharla. Haga clic en cualquiera de los servicios que se enumeran a continuación para obtener más detalles sobre cómo puede configurar Apprise para acceder a ellos.
Servicio de notificación | ID de servicio | Puerto predeterminado | Sintaxis de ejemplo |
---|---|---|---|
API de información | informar:// o informar:// | (TCP) 80 o 443 | informar://nombre de host/Token |
AWS SES | ses:// | (TCP) 443 | ses://usuario@dominio/IDClaveAcceso/ClaveSecretaAcceso/NombreRegión ses://usuario@dominio/IDClaveAcceso/ClaveSecretaAcceso/NombreRegión/correo electrónico1/correo electrónico2/correo electrónicoN |
Ladrar | ladrar:// | (TCP) 80 o 443 | ladrar://nombre de host ladrar://nombre de host/clave_dispositivo ladrar://nombre de host/clave_dispositivo1/clave_dispositivo2/clave_dispositivoN ladra://nombre de host ladra://nombre de host/clave_dispositivo ladra://nombre de host/clave_dispositivo1/clave_dispositivo2/clave_dispositivoN |
Chantificar | cantar:// | (TCP) 443 | chantificar://token |
Discordia | discordia:// | (TCP) 443 | discordia://webhook_id/webhook_token discordia://avatar@webhook_id/webhook_token |
emby | emby:// o embys:// | (TCP) 8096 | emby://usuario@nombredehost/ emby://usuario:contraseña@nombredehost |
Enigma2 | enigma2:// o enigma2s:// | (TCP) 80 o 443 | enigma2://nombre de host |
FCM | fcm:// | (TCP) 443 | fcm://proyecto@apikey/DEVICE_ID fcm://proyecto@apikey/#TOPIC fcm://project@apikey/DEVICE_ID1/#topic1/#topic2/DEVICE_ID2/ |
Feishu | feishu: // | (TCP) 443 | feishu://token |
Rebaño | rebaño:// | (TCP) 443 | rebaño://token rebaño://nombredelbot@token rebaño: //app_token/u: ID de usuario rebaño://app_token/g:channel_id rebaño://app_token/u:userid/g:channel_id |
Chat de Google | chat:// | (TCP) 443 | gchat://espacio de trabajo/clave/token |
gotificar | gotify:// o gotifys:// | (TCP) 80 o 443 | gotify://nombredehost/token gotifys://nombredehost/token?priority=high |
Gruñido | gruñido:// | (UDP) 23053 | gruñido://nombre de host gruñido: // nombre de host: número de puerto gruñido://contraseña@nombredehost growl://contraseña@nombredehost:puerto Nota : también puede utilizar la versión de obtención de parámetros, que puede permitir que la solicitud de gruñido se comporte utilizando el protocolo v1.x anterior. Un ejemplo sería así: growl://hostname?version=1 |
gremio | gremio:// | (TCP) 443 | gremio://webhook_id/webhook_token gremio://avatar@webhook_id/webhook_token |
Asistente de hogar | hassio:// o hassios:// | (TCP) 8123 o 443 | hassio://nombre de host/token de acceso hassio://usuario@nombredehost/tokendeacceso hassio://usuario:contraseña@nombre de host:puerto/token de acceso hassio://nombre de host/opcional/ruta/token de acceso |
IFTTT | iftt:// | (TCP) 443 | ifttt://webhooksID/Evento ifttt://webhooksID/Evento1/Evento2/EventoN ifttt://webhooksID/Evento1/?+Clave=Valor ifttt://webhooksID/Evento1/?-Clave=valor1 |
Unirse | unirse:// | (TCP) 443 | unirse://apikey/dispositivo unirse://apikey/dispositivo1/dispositivo2/dispositivoN/ unirse://apikey/grupo unirse://apikey/groupA/groupB/groupN unirse://apikey/DeviceA/groupA/groupN/DeviceN/ |
KODI | kodi:// o kodis:// | (TCP) 8080 o 443 | kodi://nombre de host kodi://usuario@nombredehost kodi://usuario:contraseña@nombre de host:puerto |
Kumulos | kumulos:// | (TCP) 443 | kumulos://apikey/serverkey |
Tiempo lamétrico | lametrico:// | (TCP) 443 | lametric://apikey@device_ipaddr lametric://apikey@nombredehost:puerto lametric://client_id@cliente_secreto |
Línea | línea:// | (TCP) 443 | línea://Token@Usuario línea://Token/Usuario1/Usuario2/UsuarioN |
lunamar | lunasea:// | (TCP) 80 o 443 | lunasea://usuario:contraseña@+FireBaseDevice/ lunasea://usuario:contraseña@FireBaseUser/ lunasea://usuario:contraseña@nombredehost/+FireBaseDevice/ lunasea://usuario:contraseña@nombredehost/@FireBaseUser/ |
pistola de correo | pistola de correo:// | (TCP) 443 | mailgun://usuario@nombredehost/apikey mailgun://usuario@nombredehost/apikey/correo electrónico mailgun://usuario@nombredehost/apikey/correo electrónico1/correo electrónico2/correo electrónicoN mailgun://usuario@nombredehost/apikey/?nombre="De%20Usuario" |
Mastodonte | mastodonte:// o mastodontes:// | (TCP) 80 o 443 | mastodonte://clave_acceso@nombrehost mastodonte://clave_acceso@nombrehost/@usuario mastodonte://clave_acceso@nombrehost/@usuario1/@usuario2/@usuarioN |
Matriz | matriz:// o matrices:// | (TCP) 80 o 443 | matriz://nombre de host matriz://usuario@nombredehost matrices://usuario:contraseña@nombredehost:puerto/#alias_habitación matrices://usuario:contraseña@nombredehost:puerto/!room_id matrices://usuario:contraseña@nombredehost:puerto/#alias_habitación/!id_habitación/#habitación2 matrices://token@nombredehost:puerto/?webhook=matriz matriz://usuario:token@nombredehost/?webhook=slack&format=markdown |
lo más importante | mmost:// o mmost:// | (TCP) 8065 | mmost://nombre de host/clave de autenticación mmost://nombre de host:80/clave de autenticación mmost://usuario@nombredehost:80/clavedeautenticación mmost://nombre de host/clave de autenticación?canal=canal mmosts://nombre de host/clave de autenticación mmosts://usuario@nombredehost/clavedeautenticación |
Microsoft Power Automate/Flujos de trabajo (MSTeams) | flujos de trabajo:// | (TCP) 443 | flujos de trabajo://ID de flujo de trabajo/Firma/ |
Equipos de Microsoft | msteams: // | (TCP) 443 | msteams://TokenA/TokenB/TokenC/ |
Misskey | misskey:// o misskeys:// | (TCP) 80 o 443 | clave de error: //token_acceso@nombre de host |
MQTT | mqtt:// o mqtts:// | (TCP) 1883 o 8883 | mqtt://nombre de host/tema mqtt://usuario@nombredehost/tema mqtts://usuario:contraseña@nombredehost:9883/tema |
Siguiente nube | ncloud:// o nclouds:// | (TCP) 80 o 443 | ncloud://adminuser:pass@host/Usuario nclouds://adminuser:pass@host/Usuario1/Usuario2/UsuarioN |
SiguientenubeDiscusión | nctalk:// o nctalks:// | (TCP) 80 o 443 | nctalk://usuario:contraseña@host/RoomId nctalks://usuario:contras@host/RoomId1/RoomId2/RoomIdN |
notica | notica:// | (TCP) 443 | notica://Token/ |
Notificar | notificar::// | (TCP) 443 | notifiarr://apikey/#canal notifiarr://apikey/#channel1/#channel2/#channeln |
Notificado | notifico:// | (TCP) 443 | notifico://ProjectID/MessageHook/ |
ntfy | ntfy: // | (TCP) 80 o 443 | ntfy://tema/ ntfys://tema/ |
Oficina 365 | o365:// | (TCP) 443 | o365://ID de inquilino:Correo electrónico de cuenta/ID de cliente/Secreto de cliente o365://ID de inquilino:Correo electrónico de cuenta/ID de cliente/Secreto de cliente/Correo electrónico de destino o365://InquilinoID:CuentaEmail/ClientID/ClientSecret/TargetEmail1/TargetEmail2/TargetEmailN |
Una señal | señal única: // | (TCP) 443 | onesignal://AppID@APIKey/PlayerID onesignal://ID de plantilla:ID de aplicación@APIKey/ID de usuario onesignal://AppID@APIKey/#IncludeSegment onesignal://AppID@APIKey/Correo electrónico |
opsgenie | opsgenie:// | (TCP) 443 | opsgenie://APIKey opsgenie://APIKey/UserID opsgenie://APIKey/#Team opsgenie://APIKey/*Programación opsgenie://APIKey/^Escalada |
Servicio de buscapersonas | buscapersonas:// | (TCP) 443 | buscapersonas://IntegrationKey@ApiKey pagerduty: //IntegrationKey@ApiKey/Source/Component |
Árbol de buscapersonas | árbol de buscapersonas:// | (TCP) 443 | árbol de paginación://integration_id |
Plataforma de análisis | parsep:// o parseps:// | (TCP) 80 o 443 | parsep://AppID:MasterKey@Hostname parseps://AppID:MasterKey@Hostname |
Palomitas de maízNotificar | Palomitas:// | (TCP) 443 | palomitas de maíz://ApiKey/ToPhoneNo palomitas de maíz://ApiKey/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ palomitas de maíz://ApiKey/ToEmail palomitas de maíz://ApiKey/ToEmail1/ToEmail2/ToEmailN/ palomitas de maíz://ApiKey/ToPhoneNo1/ToEmail1/ToPhoneNoN/ToEmailN |
Merodear | merodear:// | (TCP) 443 | merodear://apikey merodear://apikey/providerkey |
EmpujarBullet | pbul:// | (TCP) 443 | pbul://token de acceso pbul://token de acceso/#canal pbul://token de acceso/A_DEVICE_ID pbul://accesstoken/[email protected] pbul://accesstoken/#channel/#channel2/[email protected]/DEVICE |
Pushjet | pjet:// o pjets:// | (TCP) 80 o 443 | pjet://nombredehost/secreto pjet://nombredehost:puerto/secreto pjets://secret@nombredehost/secreto pjets://nombredehost:puerto/secreto |
Empujar (Techulus) | empujar:// | (TCP) 443 | empujar://apikey/ |
Empujado | empujado:// | (TCP) 443 | empujado://appkey/appsecret/ empujado://appkey/appsecret/#ChannelAlias empujado://appkey/appsecret/#ChannelAlias1/#ChannelAlias2/#ChannelAliasN empujado://appkey/appsecret/@UserPushedID empujado://appkey/appsecret/@UserPushedID1/@UserPushedID2/@UserPushedIDN |
Empújame | empujame:// | (TCP) 443 | empujame://Token/ |
Persona fácil de convencer | poder: // | (TCP) 443 | pover://usuario@token pover://usuario@token/DISPOSITIVO pover://usuario@token/DEVICE1/DEVICE2/DEVICEN Nota : debe especificar tanto su ID de usuario como su token. |
Empujar más seguro | psafer:// o psafers:// | (TCP) 80 o 443 | psafer://clave privada psafers://claveprivada/DISPOSITIVO psafer://claveprivada/DEVICE1/DEVICE2/DEVICEN |
Molesto | molesto:// | (TCP) 443 | insistente://apikey/DEVICE insistente://apikey/DEVICE1/DEVICE2/DEVICEN insistente: //apikey/TEMA insistente://apikey/TOPIC1/TOPIC2/TOPICN |
EmpujarCiervo | pushdeer:// o pushdeers:// | (TCP) 80 o 443 | empujador://pushKey pushdeer://nombre de host/pushKey pushdeer://nombre de host:puerto/pushKey |
reddit: // | (TCP) 443 | reddit://usuario:contraseña@app_id/app_secret/subreddit reddit://usuario:contraseña@app_id/app_secret/sub1/sub2/subN | |
Revuelta | revuelta:// | (TCP) 443 | revuelta://bottoken/ChannelID revuelta://bottoken/ChannelID1/ChannelID2/ChannelIDN |
Cohete.Chat | cohete:// o cohetes:// | (TCP) 80 o 443 | cohete://usuario:contraseña@nombre de host/ID de habitación/Canal cohetes://usuario:contraseña@nombre de host:443/#Canal1/#Canal1/ID de habitación rocket://usuario:contraseña@nombredehost/#Canal cohete://webhook@nombredehost cohetes://webhook@nombredehost/@Usuario/#Canal |
RSyslog | rsyslog:// | (UDP) 514 | rsyslog://nombre de host rsyslog://nombre de host/instalación |
ryver | ryver:// | (TCP) 443 | ryver://Organización/Token ryver://nombredelbot@Organización/Token |
EnviarGrid | enviargrid:// | (TCP) 443 | sendgrid://APIToken:DesdeCorreo electrónico/ sendgrid://APIToken:DeCorreo electrónico/ParaCorreo electrónico sendgrid://APIToken:FromEmail/ToEmail1/ToEmail2/ToEmailN/ |
ServidorChan | schan:// | (TCP) 443 | schan://enviar clave/ |
API de señal | señal:// o señales:// | (TCP) 80 o 443 | señal://nombredehost:puerto/FromPhoneNo señal://nombredehost:puerto/FromPhoneNo/ToPhoneNo señal://nombre de host:puerto/FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
Empuje simple | empujar:// | (TCP) 443 | empujar://apikey push://salt:contraseña@apikey spush://apikey?event=Avisar |
Flojo | flojo:// | (TCP) 443 | holgura://TokenA/TokenB/TokenC/ holgura://TokenA/TokenB/TokenC/Canal slack://nombredelbot@TokenA/TokenB/TokenC/Channel holgura://usuario@TokenA/TokenB/TokenC/Channel1/Channel2/ChannelN |
SMTP2Go | smtp2go:// | (TCP) 443 | smtp2go://usuario@nombredehost/apikey smtp2go://usuario@nombredehost/apikey/correo electrónico smtp2go://usuario@nombredehost/apikey/correo electrónico1/correo electrónico2/correo electrónicoN smtp2go://usuario@nombredehost/apikey/?nombre="De%20Usuario" |
SparkPost | mensaje de chispa: // | (TCP) 443 | sparkpost://usuario@nombredehost/apikey sparkpost://usuario@nombredehost/apikey/correo electrónico sparkpost://usuario@nombredehost/apikey/correo electrónico1/correo electrónico2/correo electrónicoN sparkpost://usuario@nombredehost/apikey/?nombre="De%20Usuario" |
Splunk | splunk:// o victorops:/ | (TCP) 443 | splunk://ruta_key@apikey splunk://route_key@apikey/entity_id |
Streamlabs | strmlabs:// | (TCP) 443 | strmlabs://AccessToken/ strmlabs://AccessToken/?nombre=nombre&identificador=identificador&cantidad=0&moneda=USD |
Chat de Synología | synology:// o synologys:// | (TCP) 80 o 443 | synology://nombre de host/token synology://nombre de host:puerto/token |
registro del sistema | registro del sistema:// | n / A | registro del sistema:// syslog://instalación |
Telegrama | tgrama:// | (TCP) 443 | tgram://bottoken/ChatID tgram://bottoken/ChatID1/ChatID2/ChatIDN |
Gorjeo | gorjeo:// | (TCP) 443 | Twitter: //CKey/CSecret/AKey/ASecret twitter://usuario@CKey/CSecret/AKey/ASecret twitter://CKey/CSecret/AKey/ASecret/Usuario1/Usuario2/Usuario2 twitter://CKey/CSecret/AKey/ASecret?mode=tweet |
Girar | girar:// | (TCP) 443 | giro://contraseña:iniciar sesión giro://contraseña:iniciar sesión/#canal twist://contraseña:iniciar sesión/#equipo:canal twist://contraseña:iniciar sesión/#equipo:canal1/canal2/#equipo3:canal |
Equipos Webex (Cisco) | wxequipos:// | (TCP) 443 | wxteams://Token |
robot wecom | nosotroscombot:// | (TCP) 443 | wecombot://BotKey |
whatsapp:// | (TCP) 443 | whatsapp://AccessToken@FromPhoneID/ToPhoneNo whatsapp://Plantilla:AccessToken@FromPhoneID/ToPhoneNo | |
WxPusher | wxpusher:// | (TCP) 443 | wxpusher://AppToken@IDUsuario1/IDUsuario2/IDNUsuario wxpusher://AppToken@Tema1/Tema2/Tema3 wxpusher://AppToken@IDUsuario1/Tema1/ |
XBMC | xbmc:// o xbmcs:// | (TCP) 8080 o 443 | xbmc://nombre de host xbmc://usuario@nombredehost xbmc://usuario:contraseña@nombredehost:puerto |
Chat Zulip | zulip:// | (TCP) 443 | zulip://nombredelbot@Organización/Token zulip://nombredelbot@Organización/Token/Stream zulip://nombredelbot@Organización/Token/Correo electrónico |
Servicio de notificación | ID de servicio | Puerto predeterminado | Sintaxis de ejemplo |
---|---|---|---|
Áfricas hablando | hablar:// | (TCP) 443 | atalk://AppUser@ApiKey/ToPhoneNo atalk://AppUser@ApiKey/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
Sistema automatizado de informes de paquetes (ARPS) | abril:// | (TCP) 10152 | aprs://usuario:contraseña@indicativo aprs://usuario:pass@callsign1/callsign2/callsignN |
AWSSNS | sns:// | (TCP) 443 | sns://ID de clave de acceso/clave secreta de acceso/nombre de región/+número de teléfono sns://AccessKeyID/AccessSecretKey/NombreRegión/+PhoneNo1/+PhoneNo2/+PhoneNoN sns://ID de clave de acceso/ClaveSecreta de acceso/Nombre de región/Tema sns://ID de clave de acceso/ClaveSecreta de acceso/Nombre de región/Tema1/Tema2/TemaN |
SMS Masivo | Bulksms:// | (TCP) 443 | Bulksms://usuario:contraseña@ToPhoneNo Bulksms://Usuario:Contraseña@ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
BulkVS | a granel: // | (TCP) 443 | Bulkvs://usuario:contraseña@FromPhoneNo Bulkvs://usuario:contraseña@FromPhoneNo/ToPhoneNo Bulkvs://usuario:contraseña@FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
SMS en ráfaga | ráfagasms:// | (TCP) 443 | burstsms://ApiKey:ApiSecret@FromPhoneNo/ToPhoneNo burstsms://ApiKey:ApiSecret@FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
Haga clic enEnviar | hacer clicenviar:// | (TCP) 443 | haga clic enenviar://usuario:contraseña@númerodeteléfono haga clic en enviar://usuario:contraseña@ToPhoneNo1/ToPhoneNo2/ToPhoneNoN |
DAPNET | dapnet:// | (TCP) 80 | dapnet://usuario:contraseña@indicativo dapnet://usuario:pass@callsign1/callsign2/callsignN |
Redes D7 | d7sms:// | (TCP) 443 | d7sms://token@PhoneNo d7sms://token@ToPhoneNo1/ToPhoneNo2/ToPhoneNoN |
DingTalk | hablar: // | (TCP) 443 | dingtalk://token/ dingtalk://token/ToPhoneNo dingtalk://token/ToPhoneNo1/ToPhoneNo2/ToPhoneNo1/ |
Gratis-Móvil | móvil gratuito:// | (TCP) 443 | móvil gratuito://usuario@contraseña/ |
httpSMS | httpsms:// | (TCP) 443 | httpsms://ApiKey@FromPhoneNo httpsms://ApiKey@FromPhoneNo/ToPhoneNo httpsms://ApiKey@FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
Kavenegar | kavenegar:// | (TCP) 443 | kavenegar://ApiKey/ToPhoneNo kavenegar://FromPhoneNo@ApiKey/ToPhoneNo kavenegar://ApiKey/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN |
mensajepájaro | mensajebird:// | (TCP) 443 | msgbird://ApiKey/FromPhoneNo msgbird://ApiKey/FromPhoneNo/ToPhoneNo msgbird://ApiKey/FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
MSG91 | msg91:// | (TCP) 443 | msg91://TemplateID@AuthKey/ToPhoneNo msg91://TemplateID@AuthKey/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
Plivo | plivo:// | (TCP) 443 | plivo://AuthID@Token@FromPhoneNo plivo://AuthID@Token/FromPhoneNo/ToPhoneNo plivo://AuthID@Token/FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
Siete | Siete:// | (TCP) 443 | siete://ApiKey/FromPhoneNo siete://ApiKey/FromPhoneNo/ToPhoneNo siete://ApiKey/FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
Sociedad Francesa de Radiotéléfono (SFR) | sfr:// | (TCP) 443 | sfr://usuario:contraseña>@spaceId/ToPhoneNo sfr://usuario:contraseña>@spaceId/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
API de señal | señal:// o señales:// | (TCP) 80 o 443 | señal://nombredehost:puerto/FromPhoneNo señal://nombredehost:puerto/FromPhoneNo/ToPhoneNo señal://nombre de host:puerto/FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
Sinch | sincronizar:// | (TCP) 443 | sinch://ServicePlanId:ApiToken@FromPhoneNo sinch://ServicePlanId:ApiToken@FromPhoneNo/ToPhoneNo sinch://ServicePlanId:ApiToken@FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ sinch://ServicePlanId:ApiToken@ShortCode/ToPhoneNo sinch://ServicePlanId:ApiToken@ShortCode/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
SMSÁguila | smseagle:// o smseagles:// | (TCP) 80 o 443 | smseagles://nombredehost:puerto/ToPhoneNo smseagles://nombredehost:puerto/@ToContact smseagles://nombredehost:puerto/#ToGroup smseagles://nombredehost:puerto/ToPhoneNo1/#ToGroup/@ToContact/ |
Administrador de SMS | smsmgr:// | (TCP) 443 | smsmgr://ApiKey@ToPhoneNo smsmgr://ApiKey@ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
Puerta de entrada Threema | tresma:// | (TCP) 443 | threema://GatewayID@secret/ToPhoneNo threema://GatewayID@secret/ToEmail threema://GatewayID@secret/ToThreemaID/ threema://GatewayID@secret/ToEmail/ToThreemaID/ToPhoneNo/... |
Twilio | tilio:// | (TCP) 443 | twilio://AccountSid:AuthToken@FromPhoneNo twilio://AccountSid:AuthToken@FromPhoneNo/ToPhoneNo twilio://AccountSid:AuthToken@FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ twilio://AccountSid:AuthToken@FromPhoneNo/ToPhoneNo?apikey=Clave twilio://AccountSid:AuthToken@ShortCode/ToPhoneNo twilio://AccountSid:AuthToken@ShortCode/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
Voipms | voipms:// | (TCP) 443 | voipms://contraseña:correo electrónico/FromPhoneNo voipms://contraseña:correo electrónico/FromPhoneNo/ToPhoneNo voipms://contraseña:correo electrónico/FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
Vonage (anteriormente Nexmo) | nexmo:// | (TCP) 443 | nexmo://ApiKey:ApiSecret@FromPhoneNo nexmo://ApiKey:ApiSecret@FromPhoneNo/ToPhoneNo nexmo://ApiKey:ApiSecret@FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
Servicio de notificación | ID de servicio | Puerto predeterminado | Sintaxis de ejemplo |
---|---|---|---|
Notificaciones DBus de Linux | bus:// qt:// fácil:// kde:// | n / A | bus:// qt:// fácil:// kde:// |
Notificaciones de Gnomo de Linux | gnomo:// | n / A | gnomo:// |
Notificaciones de MacOS X | macosx:// | n / A | macosx:// |
Notificaciones de Windows | ventanas:// | n / A | ventanas:// |
ID de servicio | Puerto predeterminado | Sintaxis de ejemplo |
---|---|---|
correo a:// | (TCP) 25 | correo a://id de usuario:contraseñ[email protected] correo a://dominio.com?usuario=ID de usuario&contraseña correo a://dominio.com:2525?usuario=ID de usuario&contraseña=contraseña correo a://[email protected]&contraseña mailto://mySendingUsername:[email protected][email protected] mailto://id de usuario:contraseñ[email protected]?smtp=mail.example.com&[email protected]&name=no%20reply |
mailto:// | (TCP) 587 | mailtos://id de usuario:contraseñ[email protected] mailtos://dominio.com?usuario=idusuario&contraseña mailtos://dominio.com:465?usuario=idusuario&contraseña=contraseña mailtos://[email protected]&contraseña mailtos://mySendingUsername:[email protected][email protected] mailtos://ID de usuario:contraseñ[email protected]?smtp=mail.example.com&[email protected]&name=no%20reply |
Apprise tiene algunos servicios de correo electrónico integrados (como Yahoo, Fastmail, Hotmail, Gmail, etc.) que simplifican enormemente el servicio mailto://. Ver más detalles aquí.
Método de publicación | ID de servicio | Puerto predeterminado | Sintaxis de ejemplo |
---|---|---|---|
Forma | formulario:// o formularios:// | (TCP) 80 o 443 | formulario: // nombre de host formulario://usuario@nombredehost formulario://usuario:contraseña@nombre de host:puerto formulario://nombredehost/a/ruta/a/post/a |
JSON | json:// o jsons:// | (TCP) 80 o 443 | json://nombre de host json://usuario@nombredehost json://usuario:contraseña@nombredehost:puerto json://nombredehost/a/ruta/a/post/to |
XML | xml:// o xmls:// | (TCP) 80 o 443 | xml://nombre de host xml://usuario@nombredehost xml://usuario:contraseña@nombredehost:puerto xml://nombre de host/a/ruta/a/post/a |
La forma más sencilla es instalar este paquete desde pypi:
pip install apprise
Apprise también está empaquetado como RPM y está disponible a través de EPEL compatible con CentOS, Redhat, Rocky, Oracle Linux, etc.
# Follow instructions on https://docs.fedoraproject.org/en-US/epel
# to get your system connected up to EPEL and then:
# Redhat/CentOS 7.x users
yum install apprise
# Redhat/CentOS 8.x+ and/or Fedora Users
dnf install apprise
También puede consultar la versión gráfica de Apprise para centralizar su configuración y notificaciones a través de una página web administrable.
Con este paquete también se proporciona una pequeña herramienta de interfaz de línea de comandos (CLI) llamada apprise . Si conoce las URL del servidor que desea notificar, simplemente puede proporcionarlas todas en la línea de comando y enviar sus notificaciones de esa manera:
# Send a notification to as many servers as you want
# as you can easily chain one after another (the -vv provides some
# additional verbosity to help let you know what is going on):
apprise -vv -t ' my title ' -b ' my notification body '
' mailto://myemail:[email protected] '
' pbul://o.gn5kj6nfhv736I7jC3cj3QLRiyhgl98b '
# If you don't specify a --body (-b) then stdin is used allowing
# you to use the tool as part of your every day administration:
cat /proc/cpuinfo | apprise -vv -t ' cpu info '
' mailto://myemail:[email protected] '
# The title field is totally optional
uptime | apprise -vv
' discord:///4174216298/JHMHI8qBe7bk2ZwO5U711o3dV_js '
Nadie quiere mostrar sus credenciales a todos en la línea de comando. No hay problema, también admite archivos de configuración. Puede manejar tanto un formato YAML específico como un formato de TEXTO muy simple. ¡También puedes extraer estos archivos de configuración a través de una consulta HTTP! Puede leer más sobre la estructura esperada de los archivos de configuración aquí.
# By default if no url or configuration is specified apprise will attempt to load
# configuration files (if present) from:
# ~/.apprise
# ~/.apprise.yaml
# ~/.config/apprise.conf
# ~/.config/apprise.yaml
# /etc/apprise.conf
# /etc/apprise.yaml
# Also a subdirectory handling allows you to leverage plugins
# ~/.apprise/apprise
# ~/.apprise/apprise.yaml
# ~/.config/apprise/apprise.conf
# ~/.config/apprise/apprise.yaml
# /etc/apprise/apprise.yaml
# /etc/apprise/apprise.conf
# Windows users can store their default configuration files here:
# %APPDATA%/Apprise/apprise.conf
# %APPDATA%/Apprise/apprise.yaml
# %LOCALAPPDATA%/Apprise/apprise.conf
# %LOCALAPPDATA%/Apprise/apprise.yaml
# %ALLUSERSPROFILE%Appriseapprise.conf
# %ALLUSERSPROFILE%Appriseapprise.yaml
# %PROGRAMFILES%Appriseapprise.conf
# %PROGRAMFILES%Appriseapprise.yaml
# %COMMONPROGRAMFILES%Appriseapprise.conf
# %COMMONPROGRAMFILES%Appriseapprise.yaml
# The configuration files specified above can also be identified with a `.yml`
# extension or even just entirely removing the `.conf` extension altogether.
# If you loaded one of those files, your command line gets really easy:
apprise -vv -t ' my title ' -b ' my notification body '
# If you want to deviate from the default paths or specify more than one,
# just specify them using the --config switch:
apprise -vv -t ' my title ' -b ' my notification body '
--config=/path/to/my/config.yml
# Got lots of configuration locations? No problem, you can specify them all:
# Apprise can even fetch the configuration from over a network!
apprise -vv -t ' my title ' -b ' my notification body '
--config=/path/to/my/config.yml
--config=https://localhost/my/apprise/config
¡Aprise también admite archivos adjuntos! Especifique tantos archivos adjuntos como desee para una notificación.
# Send a funny image you found on the internet to a colleague:
apprise -vv --title ' Agile Joke '
--body ' Did you see this one yet? '
--attach https://i.redd.it/my2t4d2fx0u31.jpg
' mailto://myemail:[email protected] '
# Easily send an update from a critical server to your dev team
apprise -vv --title ' system crash '
--body ' I do not think Jim fixed the bug; see attached... '
--attach /var/log/myprogram.log
--attach /var/debug/core.2345
--tag devteam
Para crear su propio gancho schema://
personalizado para que pueda activar su propio código personalizado, simplemente incluya el decorador @notify
para ajustar su función.
from apprise . decorators import notify
#
# The below assumes you want to catch foobar:// calls:
#
@ notify ( on = "foobar" , name = "My Custom Foobar Plugin" )
def my_custom_notification_wrapper ( body , title , notify_type , * args , ** kwargs ):
"""My custom notification function that triggers on all foobar:// calls
"""
# Write all of your code here... as an example...
print ( "{}: {} - {}" . format ( notify_type . upper (), title , body ))
# Returning True/False is a way to relay your status back to Apprise.
# Returning nothing (None by default) is always interpreted as a Success
Una vez que haya definido su gancho personalizado, solo necesita decirle a Apprise dónde está en tiempo de ejecución.
# By default if no plugin path is specified apprise will attempt to load
# all plugin files (if present) from the following directory paths:
# ~/.apprise/plugins
# ~/.config/apprise/plugins
# /var/lib/apprise/plugins
# Windows users can store their default plugin files in these directories:
# %APPDATA%/Apprise/plugins
# %LOCALAPPDATA%/Apprise/plugins
# %ALLUSERSPROFILE%Appriseplugins
# %PROGRAMFILES%Appriseplugins
# %COMMONPROGRAMFILES%Appriseplugins
# If you placed your plugin file within one of the directories already defined
# above, then your call simply needs to look like:
apprise -vv --title ' custom override '
--body ' the body of my message '
foobar: \
# However you can over-ride the path like so
apprise -vv --title ' custom override '
--body ' the body of my message '
--plugin-path /path/to/my/plugin.py
foobar: \
Puede leer más sobre cómo crear sus propias notificaciones y/o enlaces personalizados aquí.
Aquellos que utilizan la interfaz de línea de comandos (CLI) también pueden aprovechar las variables de entorno para preestablecer la configuración predeterminada:
Variable | Descripción |
---|---|
APPRISE_URLS | Especifique las URL predeterminadas para notificar SI no se especifica ninguna de otra manera explícitamente en la línea de comando. Si se especifica --config ( -c ), esto anulará cualquier referencia a esta variable. Utilice espacios en blanco y/o una coma ( , ) para delimitar varias entradas. |
APPRISE_CONFIG_PATH | Especifique explícitamente la ruta de búsqueda de configuración que se utilizará (anulando la predeterminada). Las rutas definidas aquí deben apuntar al nombre de archivo absoluto para abrir/referenciar. Utilice punto y coma ( ; ), avance de línea ( n ) y/o retorno de carro ( r ) para delimitar varias entradas. |
APPRISE_PLUGIN_PATH | Especifique explícitamente la ruta de búsqueda del complemento personalizado que se utilizará (anulando la predeterminada). Utilice punto y coma ( ; ), avance de línea ( n ) y/o retorno de carro ( r ) para delimitar varias entradas. |
APPRISE_STORAGE_PATH | Especifique explícitamente la ruta de almacenamiento persistente que se utilizará (anulando la predeterminada). |
Para enviar una notificación desde su aplicación Python, simplemente haga lo siguiente:
import apprise
# Create an Apprise instance
apobj = apprise . Apprise ()
# Add all of the notification services by their server url.
# A sample email notification:
apobj . add ( 'mailto://myuserid:[email protected]' )
# A sample pushbullet notification
apobj . add ( 'pbul://o.gn5kj6nfhv736I7jC3cj3QLRiyhgl98b' )
# Then notify these services any time you desire. The below would
# notify all of the services loaded into our Apprise object.
apobj . notify (
body = 'what a great notification service!' ,
title = 'my notification title' ,
)
Los desarrolladores también necesitan acceso a los archivos de configuración. La buena noticia es que su uso simplemente implica declarar otro objeto (llamado AppriseConfig ) que el objeto Apprise puede ingerir. ¡También puedes mezclar y combinar libremente entradas de configuración y notificaciones tan a menudo como desees! Puede leer más sobre la estructura esperada de los archivos de configuración aquí.
import apprise
# Create an Apprise instance
apobj = apprise . Apprise ()
# Create an Config instance
config = apprise . AppriseConfig ()
# Add a configuration source:
config . add ( '/path/to/my/config.yml' )
# Add another...
config . add ( 'https://myserver:8080/path/to/config' )
# Make sure to add our config into our apprise object
apobj . add ( config )
# You can mix and match; add an entry directly if you want too
# In this entry we associate the 'admin' tag with our notification
apobj . add ( 'mailto://myuser:[email protected]' , tag = 'admin' )
# Then notify these services any time you desire. The below would
# notify all of the services that have not been bound to any specific
# tag.
apobj . notify (
body = 'what a great notification service!' ,
title = 'my notification title' ,
)
# Tagging allows you to specifically target only specific notification
# services you've loaded:
apobj . notify (
body = 'send a notification to our admin group' ,
title = 'Attention Admins' ,
# notify any services tagged with the 'admin' tag
tag = 'admin' ,
)
# If you want to notify absolutely everything (regardless of whether
# it's been tagged or not), just use the reserved tag of 'all':
apobj . notify (
body = 'send a notification to our admin group' ,
title = 'Attention Admins' ,
# notify absolutely everything loaded, regardless on wether
# it has a tag associated with it or not:
tag = 'all' ,
)
Los archivos adjuntos son muy fáciles de enviar utilizando la API Apprise:
import apprise
# Create an Apprise instance
apobj = apprise . Apprise ()
# Add at least one service you want to notify
apobj . add ( 'mailto://myuser:[email protected]' )
# Then send your attachment.
apobj . notify (
title = 'A great photo of our family' ,
body = 'The flash caused Jane to close her eyes! hah! :)' ,
attach = '/local/path/to/my/DSC_003.jpg' ,
)
# Send a web based attachment too! In the below example, we connect to a home
# security camera and send a live image to an email. By default remote web
# content is cached, but for a security camera we might want to call notify
# again later in our code, so we want our last image retrieved to expire(in
# this case after 3 seconds).
apobj . notify (
title = 'Latest security image' ,
attach = 'http://admin:password@hikvision-cam01/ISAPI/Streaming/channels/101/picture?cache=3'
)
Para enviar más de un archivo adjunto, simplemente use una lista, conjunto o tupla:
import apprise
# Create an Apprise instance
apobj = apprise . Apprise ()
# Add at least one service you want to notify
apobj . add ( 'mailto://myuser:[email protected]' )
# Now add all of the entries we're interested in:
attach = (
# ?name= allows us to rename the actual jpeg as found on the site
# to be another name when sent to our receipient(s)
'https://i.redd.it/my2t4d2fx0u31.jpg?name=FlyingToMars.jpg' ,
# Now add another:
'/path/to/funny/joke.gif' ,
)
# Send your multiple attachments with a single notify call:
apobj . notify (
title = 'Some good jokes.' ,
body = 'Hey guys, check out these!' ,
attach = attach ,
)
De forma predeterminada, no se carga ningún complemento personalizado para aquellos que crean desde la API de Apprise. Queda a discreción de los desarrolladores cargar módulos personalizados. Pero si decide hacerlo, es tan fácil como incluir la referencia de ruta en el objeto AppriseAsset()
antes de la inicialización de su instancia Apprise()
.
Por ejemplo:
from apprise import Apprise
from apprise import AppriseAsset
# Prepare your Asset object so that you can enable the custom plugins to
# be loaded for your instance of Apprise...
asset = AppriseAsset ( plugin_paths = "/path/to/scan" )
# OR You can also generate scan more then one file too:
asset = AppriseAsset (
plugin_paths = [
# Iterate over all python libraries found in the root of the
# specified path. This is NOT a recursive (directory) scan; only
# the first level is parsed. HOWEVER, if a directory containing
# an __init__.py is found, it will be included in the load.
"/dir/containing/many/python/libraries" ,
# An absolute path to a plugin.py to exclusively load
"/path/to/plugin.py" ,
# if you point to a directory that has an __init__.py file found in
# it, then only that file is loaded (it's similar to point to a
# absolute .py file. Hence, there is no (level 1) scanning at all
# within the directory specified.
"/path/to/dir/library"
]
)
# Now that we've got our asset, we just work with our Apprise object as we
# normally do
aobj = Apprise ( asset = asset )
# If our new custom `foobar://` library was loaded (presuming we prepared
# one like in the examples above). then you would be able to safely add it
# into Apprise at this point
aobj . add ( 'foobar://' )
# Send our notification out through our foobar://
aobj . notify ( "test" )
Puede leer más sobre cómo crear sus propias notificaciones y/o enlaces personalizados aquí.
El almacenamiento persistente permite a Apprise almacenar en caché acciones recurrentes opcionalmente en el disco. Esto puede reducir en gran medida la sobrecarga utilizada para enviar una notificación.
Hay 3 estados operativos de almacenamiento persistente que Apprise puede operar usando:
auto
: Vacía la información de caché recopilada en el sistema de archivos a pedido. Esta opción es increíblemente liviana. Este es el comportamiento predeterminado para todo el uso de CLI.flush
: vacía cualquier información de la caché al sistema de archivos durante cada transacción.memory
: deshabilite efectivamente el almacenamiento persistente. Cualquier almacenamiento en caché de los datos requeridos por cada complemento utilizado se realiza en la memoria. Apprise funciona eficazmente como siempre lo hacía antes de que el almacenamiento persistente estuviera disponible. Esta configuración garantiza que ningún contenido se escriba en el disco.auto
o flush
. Esto se hace a través del objeto AppriseAsset()
y se explica más adelante en esta documentación. Puede proporcionar la palabra clave storage
en su llamada CLI para ver las opciones de almacenamiento persistente disponibles para usted.
# List all of the occupied space used by Apprise's Persistent Storage:
apprise storage list
# list is the default option, so the following does the same thing:
apprise storage
# You can prune all of your storage older then 30 days
# and not accessed for this period like so:
apprise storage prune
# You can do a hard reset (and wipe all persistent storage) with:
apprise storage clean
También puede filtrar sus resultados agregando etiquetas y/o identificadores de URL. Cuando obtenga una lista ( apprise storage list
), es posible que vea:
# example output of 'apprise storage list':
1. f7077a65 0.00B unused
- matrixs://abcdef:****@synapse.example12.com/%23general?image=no&mode=off&version=3&msgtype...
tags: team
2. 0e873a46 81.10B active
- tgram://W...U//?image=False&detect=yes&silent=no&preview=no&content=before&mdv=v1&format=m...
tags: personal
3. abcd123 12.00B stale
Los estados de la caché (almacenamiento persistente) son:
unused
: este complemento no ha enviado nada al disco para fines de reutilización/cachéactive
: este complemento ha escrito contenido en el disco. O al menos, ha preparado una ubicación de almacenamiento persistente en la que puede escribir.stale
: el sistema detectó una ubicación donde posiblemente se haya escrito una URL en el pasado, pero no hay nada que la vincule utilizando las URL proporcionadas. Probablemente esté desperdiciando espacio o ya no sirva para nada.Puede utilizar esta información para filtrar sus resultados especificando valores de ID de URL (UID) después de su comando. Por ejemplo:
# The below commands continue with the example already identified above
# the following would match abcd123 (even though just ab was provided)
# The output would only list the 'stale' entry above
apprise storage list ab
# knowing our filter is safe, we could remove it
# the below command would not obstruct our other to URLs and would only
# remove our stale one:
apprise storage clean ab
# Entries can be filtered by tag as well:
apprise storage list --tag=team
# You can match on multiple URL ID's as well:
# The followin would actually match the URL ID's of 1. and .2 above
apprise storage list f 0
Cuando se utiliza la CLI, el almacenamiento persistente está configurado en el modo operativo auto
de forma predeterminada; puede cambiar esto proporcionando --storage-mode=
( -SM
) durante sus llamadas. Si desea asegurarse de que siempre esté configurado en un valor de su elección.
Para obtener más información sobre el almacenamiento persistente, visite aquí.
Para los desarrolladores, el almacenamiento persistente está configurado en el modo operativo de memory
de forma predeterminada.
Queda a discreción de los desarrolladores habilitarlo (cambiándolo a auto
o flush
). Si decide hacerlo: es tan fácil como incluir la información en el objeto AppriseAsset()
antes de la inicialización de su instancia Apprise()
.
Por ejemplo:
from apprise import Apprise
from apprise import AppriseAsset
from apprise import PersistentStoreMode
# Prepare a location the persistent storage can write it's cached content to.
# By setting this path, this immediately assumes you wish to operate the
# persistent storage in the operational 'auto' mode
asset = AppriseAsset ( storage_path = "/path/to/save/data" )
# If you want to be more explicit and set more options, then you may do the
# following
asset = AppriseAsset (
# Set our storage path directory (minimum requirement to enable it)
storage_path = "/path/to/save/data" ,
# Set the mode... the options are:
# 1. PersistentStoreMode.MEMORY
# - disable persistent storage from writing to disk
# 2. PersistentStoreMode.AUTO
# - write to disk on demand
# 3. PersistentStoreMode.FLUSH
# - write to disk always and often
storage_mode = PersistentStoreMode . FLUSH
# The URL IDs are by default 8 characters in length. You can increase and
# decrease it's value here. The value must be > 2. The default value is 8
# if not otherwise specified
storage_idlen = 8 ,
)
# Now that we've got our asset, we just work with our Apprise object as we
# normally do
aobj = Apprise ( asset = asset )
Para obtener más información sobre el almacenamiento persistente, visite aquí.
Si está interesado en leer más sobre este y otros métodos sobre cómo personalizar sus propias notificaciones, consulte los siguientes enlaces:
¿Quieres ayudar a mejorar Apprise?