Der Abschnitt identifiziert alle von dieser Bibliothek unterstützten Dienste. Weitere Informationen zu den unterstützten Modulen finden Sie hier im Wiki.
In der folgenden Tabelle sind die von diesem Tool unterstützten Dienste sowie einige Beispiel-Dienst-URLs aufgeführt, die Sie verwenden müssen, um die Vorteile nutzen zu können. Klicken Sie auf einen der unten aufgeführten Dienste, um weitere Informationen dazu zu erhalten, wie Sie Apprise für den Zugriff darauf konfigurieren können.
Benachrichtigungsdienst | Dienst-ID | Standardport | Beispielsyntax |
---|---|---|---|
Apprise-API | apprises:// oder apprises:// | (TCP) 80 oder 443 | apprise://hostname/Token |
AWS SES | ses:// | (TCP) 443 | ses://user@domain/AccessKeyID/AccessSecretKey/RegionName ses://user@domain/AccessKeyID/AccessSecretKey/RegionName/email1/email2/emailN |
Bellen | bellen:// | (TCP) 80 oder 443 | bark://hostname bark://hostname/device_key bark://hostname/device_key1/device_key2/device_keyN bellt://hostname bellt://hostname/device_key bellt://hostname/device_key1/device_key2/device_keyN |
Chantifizieren | chantifizieren:// | (TCP) 443 | chantify://token |
Zwietracht | Zwietracht:// | (TCP) 443 | discord://webhook_id/webhook_token discord://avatar@webhook_id/webhook_token |
Emby | emby:// oder embys:// | (TCP) 8096 | emby://user@hostname/ Emby://Benutzer:Passwort@Hostname |
Enigma2 | enigma2:// oder enigma2s:// | (TCP) 80 oder 443 | enigma2://hostname |
FCM | fcm:// | (TCP) 443 | fcm://project@apikey/DEVICE_ID fcm://project@apikey/#TOPIC fcm://project@apikey/DEVICE_ID1/#topic1/#topic2/DEVICE_ID2/ |
Feishu | feishu:// | (TCP) 443 | feishu://token |
Herde | Herde:// | (TCP) 443 | flock://token flock://botname@token flock://app_token/u:userid flock://app_token/g:channel_id flock://app_token/u:userid/g:channel_id |
Google Chat | gchat:// | (TCP) 443 | gchat://workspace/key/token |
Gotify | gotify:// oder gotifys:// | (TCP) 80 oder 443 | gotify://hostname/token gotifys://hostname/token?priority=high |
Knurren | knurren:// | (UDP) 23053 | Growl://Hostname Growl://Hostname:Portnr Growl://Passwort@Hostname Growl://Passwort@Hostname:Port Hinweis : Sie können auch die Get-Parameter- Version verwenden, die es der Growl-Anfrage ermöglichen kann, sich unter Verwendung des älteren v1.x-Protokolls zu verhalten. Ein Beispiel würde so aussehen: Growl://hostname?version=1 |
Gilt | vergoldet:// | (TCP) 443 | guilded://webhook_id/webhook_token guilded://avatar@webhook_id/webhook_token |
Heimassistent | hassio:// oder hassios:// | (TCP) 8123 oder 443 | hassio://hostname/accesstoken hassio://user@hostname/accesstoken hassio://user:password@hostname:port/accesstoken hassio://hostname/optional/path/accesstoken |
IFTTT | ifttt:// | (TCP) 443 | ifttt://webhooksID/Event ifttt://webhooksID/Event1/Event2/EventN ifttt://webhooksID/Event1/?+Key=Value ifttt://webhooksID/Event1/?-Key=value1 |
Verbinden | verbinden:// | (TCP) 443 | join://apikey/device join://apikey/device1/device2/deviceN/ beitreten://apikey/group beitreten://apikey/groupA/groupB/groupN beitreten://apikey/DeviceA/groupA/groupN/DeviceN/ |
KODI | kodi:// oder kodis:// | (TCP) 8080 oder 443 | kodi://hostname kodi://user@hostname kodi://Benutzer:Passwort@Hostname:Port |
Kumulos | kumulos:// | (TCP) 443 | kumulos://apikey/serverkey |
LaMetric-Zeit | lametrisch:// | (TCP) 443 | lametric://apikey@device_ipaddr lametric://apikey@hostname:port lametric://client_id@client_secret |
Linie | Linie:// | (TCP) 443 | line://Token@Benutzer Zeile://Token/Benutzer1/Benutzer2/BenutzerN |
LunaSea | lunasea:// | (TCP) 80 oder 443 | lunasea://user:pass@+FireBaseDevice/ lunasea://user:pass@FireBaseUser/ lunasea://user:pass@hostname/+FireBaseDevice/ lunasea://user:pass@hostname/@FireBaseUser/ |
Postpistole | mailgun:// | (TCP) 443 | mailgun://user@hostname/apikey mailgun://user@hostname/apikey/email mailgun://user@hostname/apikey/email1/email2/emailN mailgun://user@hostname/apikey/?name="From%20User" |
Mastodon | Mastodon:// oder Mastodons:// | (TCP) 80 oder 443 | mastodon://access_key@hostname mastodon://access_key@hostname/@user mastodon://access_key@hostname/@user1/@user2/@userN |
Matrix | Matrix:// oder Matrizen:// | (TCP) 80 oder 443 | Matrix://Hostname Matrix://Benutzer@Hostname matrizen://user:pass@hostname:port/#room_alias matrizen://user:pass@hostname:port/!room_id matrizen://user:pass@hostname:port/#room_alias/!room_id/#room2 matrixs://token@hostname:port/?webhook=matrix matrix://user:token@hostname/?webhook=slack&format=markdown |
Am wichtigsten | mmost:// oder mmosts:// | (TCP) 8065 | mmost://hostname/authkey mmost://hostname:80/authkey mmost://user@hostname:80/authkey mmost://hostname/authkey?channel=channel mmosts://hostname/authkey mmosts://user@hostname/authkey |
Microsoft Power Automate/Workflows (MSTeams) | Arbeitsabläufe:// | (TCP) 443 | Workflows://WorkflowID/Signatur/ |
Microsoft-Teams | msteams:// | (TCP) 443 | msteams://TokenA/TokenB/TokenC/ |
Misskey | misskey:// oder misskeys:// | (TCP) 80 oder 443 | misskey://access_token@hostname |
MQTT | mqtt:// oder mqtts:// | (TCP) 1883 oder 8883 | mqtt://hostname/topic mqtt://user@hostname/topic mqtts://user:pass@hostname:9883/topic |
Nextcloud | ncloud:// oder nclouds:// | (TCP) 80 oder 443 | ncloud://adminuser:pass@host/Benutzer nclouds://adminuser:pass@host/User1/User2/UserN |
NextcloudTalk | nctalk:// oder nctalks:// | (TCP) 80 oder 443 | nctalk://user:pass@host/RoomId nctalks://user:pass@host/RoomId1/RoomId2/RoomIdN |
Notica | notica:// | (TCP) 443 | notica://Token/ |
Notifiarr | notifiarr:// | (TCP) 443 | notifiarr://apikey/#channel notifiarr://apikey/#channel1/#channel2/#channeln |
Benachrichtigung | Benachrichtigung:// | (TCP) 443 | notifico://ProjectID/MessageHook/ |
ntfy | ntfy:// | (TCP) 80 oder 443 | ntfy://topic/ ntfys://topic/ |
Büro 365 | o365:// | (TCP) 443 | o365://TenantID:AccountEmail/ClientID/ClientSecret o365://TenantID:AccountEmail/ClientID/ClientSecret/TargetEmail o365://TenantID:AccountEmail/ClientID/ClientSecret/TargetEmail1/TargetEmail2/TargetEmailN |
OneSignal | onesignal:// | (TCP) 443 | onesignal://AppID@APIKey/PlayerID onesignal://TemplateID:AppID@APIKey/UserID onesignal://AppID@APIKey/#IncludeSegment onesignal://AppID@APIKey/Email |
Opsgenie | opsgenie:// | (TCP) 443 | opsgenie://APIKey opsgenie://APIKey/UserID opsgenie://APIKey/#Team opsgenie://APIKey/*Schedule opsgenie://APIKey/^Eskalation |
PagerDuty | Pagerduty:// | (TCP) 443 | pagerduty://IntegrationKey@ApiKey pagerduty://IntegrationKey@ApiKey/Source/Component |
PagerTree | pagertree:// | (TCP) 443 | pagertree://integration_id |
ParsePlatform | parsep:// oder parseps:// | (TCP) 80 oder 443 | parsep://AppID:MasterKey@Hostname parseps://AppID:MasterKey@Hostname |
PopcornNotify | Popcorn:// | (TCP) 443 | popcorn://ApiKey/ToPhoneNo popcorn://ApiKey/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ popcorn://ApiKey/ToEmail popcorn://ApiKey/ToEmail1/ToEmail2/ToEmailN/ popcorn://ApiKey/ToPhoneNo1/ToEmail1/ToPhoneNoN/ToEmailN |
Prowl | prowl:// | (TCP) 443 | prowl://apikey prowl://apikey/providerkey |
PushBullet | pbul:// | (TCP) 443 | pbul://accesstoken pbul://accesstoken/#channel pbul://accesstoken/A_DEVICE_ID pbul://accesstoken/[email protected] pbul://accesstoken/#channel/#channel2/[email protected]/DEVICE |
Pushjet | pjet:// oder pjets:// | (TCP) 80 oder 443 | pjet://hostname/secret pjet://hostname:port/secret pjets://secret@hostname/secret pjets://hostname:port/secret |
Stoßen (Techulus) | drücken:// | (TCP) 443 | push://apikey/ |
Gedrängt | geschoben:// | (TCP) 443 | push://appkey/appsecret/ push://appkey/appsecret/#ChannelAlias push://appkey/appsecret/#ChannelAlias1/#ChannelAlias2/#ChannelAliasN push://appkey/appsecret/@UserPushedID push://appkey/appsecret/@UserPushedID1/@UserPushedID2/@UserPushedIDN |
PushMe | pushme:// | (TCP) 443 | pushme://Token/ |
Schwächling | pover:// | (TCP) 443 | pover://user@token pover://user@token/DEVICE pover://user@token/DEVICE1/DEVICE2/DEVICEN Hinweis : Sie müssen sowohl Ihre Benutzer-ID als auch Ihr Token angeben |
PushSafer | psafer:// oder psafers:// | (TCP) 80 oder 443 | psafer://privatekey psafers://privatekey/DEVICE psafer://privatekey/DEVICE1/DEVICE2/DEVICEN |
Aufdringlich | aufdringlich:// | (TCP) 443 | pushy://apikey/DEVICE pushy://apikey/DEVICE1/DEVICE2/DEVICEN aufdringlich://apikey/TOPIC pushy://apikey/TOPIC1/TOPIC2/TOPICN |
PushDeer | pushdeer:// oder pushdeers:// | (TCP) 80 oder 443 | pushdeer://pushKey pushdeer://hostname/pushKey pushdeer://hostname:port/pushKey |
reddit:// | (TCP) 443 | reddit://user:password@app_id/app_secret/subreddit reddit://user:password@app_id/app_secret/sub1/sub2/subN | |
Revolte | Revolte:// | (TCP) 443 | revolt://bottoken/ChannelID revolt://bottoken/ChannelID1/ChannelID2/ChannelIDN |
Rocket.Chat | rakete:// oder raketen:// | (TCP) 80 oder 443 | rocket://user:password@hostname/RoomID/Channel rockets://user:password@hostname:443/#Channel1/#Channel1/RoomID rocket://user:password@hostname/#Channel rocket://webhook@hostname rockets://webhook@hostname/@User/#Channel |
RSyslog | rsyslog:// | (UDP) 514 | rsyslog://hostname rsyslog://hostname/Facility |
Ryver | ryver:// | (TCP) 443 | ryver://Organisation/Token ryver://botname@Organization/Token |
SendGrid | sendgrid:// | (TCP) 443 | sendgrid://APIToken:FromEmail/ sendgrid://APIToken:FromEmail/ToEmail sendgrid://APIToken:FromEmail/ToEmail1/ToEmail2/ToEmailN/ |
ServerChan | schan:// | (TCP) 443 | schan://sendkey/ |
Signal-API | signal:// oder signal:// | (TCP) 80 oder 443 | signal://hostname:port/FromPhoneNo signal://hostname:port/FromPhoneNo/ToPhoneNo signal://hostname:port/FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
SimplePush | spush:// | (TCP) 443 | spush://apikey spush://salt:password@apikey spush://apikey?event=Apprise |
Locker | locker:// | (TCP) 443 | slack://TokenA/TokenB/TokenC/ slack://TokenA/TokenB/TokenC/Channel slack://botname@TokenA/TokenB/TokenC/Channel slack://user@TokenA/TokenB/TokenC/Channel1/Channel2/ChannelN |
SMTP2Go | smtp2go:// | (TCP) 443 | smtp2go://user@hostname/apikey smtp2go://user@hostname/apikey/email smtp2go://user@hostname/apikey/email1/email2/emailN smtp2go://user@hostname/apikey/?name="Von%20Benutzer" |
SparkPost | sparkpost:// | (TCP) 443 | sparkpost://user@hostname/apikey sparkpost://user@hostname/apikey/email sparkpost://user@hostname/apikey/email1/email2/emailN sparkpost://user@hostname/apikey/?name="From%20User" |
Splunk | splunk:// oder victorops:/ | (TCP) 443 | splunk://route_key@apikey splunk://route_key@apikey/entity_id |
Streamlabs | strmlabs:// | (TCP) 443 | strmlabs://AccessToken/ strmlabs://AccessToken/?name=name&identifier=identifier&amount=0¤cy=USD |
Synology-Chat | synology:// oder synologys:// | (TCP) 80 oder 443 | synology://hostname/token synology://hostname:port/token |
Syslog | syslog:// | n / A | syslog:// syslog://Einrichtung |
Telegramm | tgram:// | (TCP) 443 | tgram://bottoken/ChatID tgram://bottoken/ChatID1/ChatID2/ChatIDN |
twitter:// | (TCP) 443 | twitter://CKey/CSecret/AKey/ASecret twitter://user@CKey/CSecret/AKey/ASecret twitter://CKey/CSecret/AKey/ASecret/User1/User2/User2 twitter://CKey/CSecret/AKey/ASecret?mode=tweet | |
Twist | Twist:// | (TCP) 443 | Twist://Passwort:Anmelden twist://password:login/#channel twist://password:login/#team:channel twist://password:login/#team:channel1/channel2/#team3:channel |
Webex Teams (Cisco) | wxteams:// | (TCP) 443 | wxteams://Token |
WeCom Bot | wecombot:// | (TCP) 443 | wecombot://BotKey |
whatsapp:// | (TCP) 443 | whatsapp://AccessToken@FromPhoneID/ToPhoneNo whatsapp://Template:AccessToken@FromPhoneID/ToPhoneNo | |
WxPusher | wxpusher:// | (TCP) 443 | wxpusher://AppToken@UserID1/UserID2/UserIDN wxpusher://AppToken@Topic1/Topic2/Topic3 wxpusher://AppToken@UserID1/Topic1/ |
XBMC | xbmc:// oder xbmcs:// | (TCP) 8080 oder 443 | xbmc://hostname xbmc://benutzer@hostname xbmc://Benutzer:Passwort@Hostname:Port |
Zulip-Chat | zulip:// | (TCP) 443 | zulip://botname@Organization/Token zulip://botname@Organization/Token/Stream zulip://botname@Organization/Token/Email |
Benachrichtigungsdienst | Dienst-ID | Standardport | Beispielsyntax |
---|---|---|---|
Afrikas reden | atalk:// | (TCP) 443 | atalk://AppUser@ApiKey/ToPhoneNo atalk://AppUser@ApiKey/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
Automatisiertes Paketberichtssystem (ARPS) | April: // | (TCP) 10152 | aprs://user:pass@callsign aprs://user:pass@callsign1/callsign2/callsignN |
AWS SNS | sns:// | (TCP) 443 | sns://AccessKeyID/AccessSecretKey/RegionName/+PhoneNo sns://AccessKeyID/AccessSecretKey/RegionName/+PhoneNo1/+PhoneNo2/+PhoneNoN sns://AccessKeyID/AccessSecretKey/RegionName/Topic sns://AccessKeyID/AccessSecretKey/RegionName/Topic1/Topic2/TopicN |
BulkSMS | bulksms:// | (TCP) 443 | bulksms://user:password@ToPhoneNo bulksms://Benutzer:Passwort@ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
BulkVS | bulkvs:// | (TCP) 443 | bulkvs://user:password@FromPhoneNo bulkvs://user:password@FromPhoneNo/ToPhoneNo bulkvs://user:password@FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
Burst-SMS | Burstsms:// | (TCP) 443 | Burstsms://ApiKey:ApiSecret@FromPhoneNo/ToPhoneNo Burstsms://ApiKey:ApiSecret@FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
Klicken Sie auf Senden | clicksend:// | (TCP) 443 | clicksend://user:pass@PhoneNo clicksend://user:pass@ToPhoneNo1/ToPhoneNo2/ToPhoneNoN |
DAPNET | dapnet:// | (TCP) 80 | dapnet://user:pass@callsign dapnet://user:pass@callsign1/callsign2/callsignN |
D7-Netzwerke | d7sms:// | (TCP) 443 | d7sms://token@PhoneNo d7sms://token@ToPhoneNo1/ToPhoneNo2/ToPhoneNoN |
DingTalk | dingtalk:// | (TCP) 443 | dingtalk://token/ dingtalk://token/ToPhoneNo dingtalk://token/ToPhoneNo1/ToPhoneNo2/ToPhoneNo1/ |
Kostenlos mobil | freemobile:// | (TCP) 443 | freemobile://user@password/ |
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 |
MessageBird | msgbird:// | (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/ |
Sieben | Sieben:// | (TCP) 443 | seven://ApiKey/FromPhoneNo sieben://ApiKey/FromPhoneNo/ToPhoneNo sieben://ApiKey/FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
Société Française du Radiotéléphone (SFR) | sfr:// | (TCP) 443 | sfr://user:password>@spaceId/ToPhoneNo sfr://user:password>@spaceId/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
Signal-API | signal:// oder signal:// | (TCP) 80 oder 443 | signal://hostname:port/FromPhoneNo signal://hostname:port/FromPhoneNo/ToPhoneNo signal://hostname:port/FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
Sinch | sin:// | (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/ |
SMSEagle | smseagle:// oder smseagles:// | (TCP) 80 oder 443 | smseagles://hostname:port/ToPhoneNo smseagles://hostname:port/@ToContact smseagles://hostname:port/#ToGroup smseagles://hostname:port/ToPhoneNo1/#ToGroup/@ToContact/ |
SMS-Manager | smsmgr:// | (TCP) 443 | smsmgr://ApiKey@ToPhoneNo smsmgr://ApiKey@ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
Threema-Gateway | threema:// | (TCP) 443 | threema://GatewayID@secret/ToPhoneNo threema://GatewayID@secret/ToEmail threema://GatewayID@secret/ToThreemaID/ threema://GatewayID@secret/ToEmail/ToThreemaID/ToPhoneNo/... |
Twilio | twilio:// | (TCP) 443 | twilio://AccountSid:AuthToken@FromPhoneNo twilio://AccountSid:AuthToken@FromPhoneNo/ToPhoneNo twilio://AccountSid:AuthToken@FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ twilio://AccountSid:AuthToken@FromPhoneNo/ToPhoneNo?apikey=Key twilio://AccountSid:AuthToken@ShortCode/ToPhoneNo twilio://AccountSid:AuthToken@ShortCode/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
Voipms | voipms:// | (TCP) 443 | voipms://password:email/FromPhoneNo voipms://password:email/FromPhoneNo/ToPhoneNo voipms://password:email/FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
Vonage (ehemals Nexmo) | nexmo:// | (TCP) 443 | nexmo://ApiKey:ApiSecret@FromPhoneNo nexmo://ApiKey:ApiSecret@FromPhoneNo/ToPhoneNo nexmo://ApiKey:ApiSecret@FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
Benachrichtigungsdienst | Dienst-ID | Standardport | Beispielsyntax |
---|---|---|---|
Linux-DBus-Benachrichtigungen | dbus:// qt:// glib:// kde:// | n / A | dbus:// qt:// glib:// kde:// |
Linux Gnome-Benachrichtigungen | Gnom:// | n / A | Gnom:// |
MacOS X-Benachrichtigungen | macosx:// | n / A | macosx:// |
Windows-Benachrichtigungen | Windows:// | n / A | Windows:// |
Dienst-ID | Standardport | Beispielsyntax |
---|---|---|
mailto:// | (TCP) 25 | mailto://userid:[email protected] mailto://domain.com?user=userid&pass=password mailto://domain.com:2525?user=userid&pass=password mailto://[email protected]&pass=password mailto://mySendingUsername:[email protected][email protected] mailto://userid:[email protected]?smtp=mail.example.com&[email protected]&name=no%20reply |
mailtos:// | (TCP) 587 | mailtos://userid:[email protected] mailtos://domain.com?user=userid&pass=password mailtos://domain.com:465?user=userid&pass=password mailtos://[email protected]&pass=password mailtos://mySendingUsername:[email protected][email protected] mailtos://userid:[email protected]?smtp=mail.example.com&[email protected]&name=no%20reply |
Apprise verfügt über einige integrierte E-Mail-Dienste (z. B. Yahoo, Fastmail, Hotmail, Gmail usw.), die den Dienst „mailto://“ erheblich vereinfachen. Weitere Details finden Sie hier.
Post-Methode | Dienst-ID | Standardport | Beispielsyntax |
---|---|---|---|
Bilden | form:// oder form:// | (TCP) 80 oder 443 | form://hostname form://benutzer@hostname form://Benutzer:Passwort@Hostname:Port form://hostname/a/path/to/post/to |
JSON | json:// oder jsons:// | (TCP) 80 oder 443 | json://hostname json://Benutzer@Hostname json://Benutzer:Passwort@Hostname:Port json://hostname/a/path/to/post/to |
XML | xml:// oder xmls:// | (TCP) 80 oder 443 | xml://Hostname xml://Benutzer@Hostname xml://Benutzer:Passwort@Hostname:Port xml://hostname/a/path/to/post/to |
Der einfachste Weg, dieses Paket zu installieren, ist von pypi aus:
pip install apprise
Apprise ist auch als RPM verpackt und über EPEL erhältlich, das CentOS, Redhat, Rocky, Oracle Linux usw. unterstützt.
# 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
Sie können sich auch die grafische Version von Apprise ansehen, um Ihre Konfiguration und Benachrichtigungen über eine verwaltbare Webseite zu zentralisieren.
Mit diesem Paket wird auch ein kleines Befehlszeilenschnittstellentool (CLI) mit dem Namen apprise bereitgestellt. Wenn Sie die Server-URLs kennen, die Sie benachrichtigen möchten, können Sie sie einfach alle in der Befehlszeile angeben und Ihre Benachrichtigungen auf diese Weise senden:
# 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 '
Niemand möchte seine Anmeldeinformationen offenlegen, damit jeder sie in der Befehlszeile sehen kann. Kein Problem. Beachten Sie , dass auch Konfigurationsdateien unterstützt werden. Es kann sowohl ein bestimmtes YAML-Format als auch ein sehr einfaches TEXT-Format verarbeiten. Sie können diese Konfigurationsdateien auch über eine HTTP-Abfrage abrufen! Mehr über die erwartete Struktur der Konfigurationsdateien können Sie hier lesen.
# 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
Apprise unterstützt auch Dateianhänge! Geben Sie so viele Anhänge zu einer Benachrichtigung an, wie Sie möchten.
# 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
Um Ihren eigenen benutzerdefinierten schema://
-Hook zu erstellen, damit Sie Ihren eigenen benutzerdefinierten Code auslösen können, fügen Sie einfach den @notify
Dekorator ein, um Ihre Funktion zu umschließen.
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
Sobald Sie Ihren benutzerdefinierten Hook definiert haben, müssen Sie Apprise nur noch mitteilen, wo er sich zur Laufzeit befindet.
# 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: \
Weitere Informationen zum Erstellen eigener benutzerdefinierter Benachrichtigungen und/oder Hooks finden Sie hier.
Benutzer der Befehlszeilenschnittstelle (CLI) können auch Umgebungsvariablen nutzen, um die Standardeinstellungen vorab festzulegen:
Variable | Beschreibung |
---|---|
APPRISE_URLS | Geben Sie die Standard-URLs zur Benachrichtigung an, wenn keine vorhanden sind. Andernfalls werden in der Befehlszeile explizit keine angegeben. Wenn --config ( -c ) angegeben ist, überschreibt dies alle Verweise auf diese Variable. Verwenden Sie Leerzeichen und/oder ein Komma ( , ), um mehrere Einträge zu trennen. |
APPRISE_CONFIG_PATH | Geben Sie explizit den zu verwendenden Konfigurationssuchpfad an (wodurch der Standardwert überschrieben wird). Die hier definierten Pfade müssen auf den absoluten Dateinamen verweisen, der geöffnet/referenziert werden soll. Verwenden Sie ein Semikolon ( ; ), einen Zeilenvorschub ( n ) und/oder einen Wagenrücklauf ( r ), um mehrere Einträge zu trennen. |
APPRISE_PLUGIN_PATH | Geben Sie explizit den zu verwendenden benutzerdefinierten Plugin-Suchpfad an (wodurch der Standardwert überschrieben wird). Verwenden Sie ein Semikolon ( ; ), einen Zeilenvorschub ( n ) und/oder einen Wagenrücklauf ( r ), um mehrere Einträge zu trennen. |
APPRISE_STORAGE_PATH | Geben Sie explizit den zu verwendenden persistenten Speicherpfad an (wodurch der Standardwert überschrieben wird). |
Um eine Benachrichtigung aus Ihrer Python-Anwendung heraus zu senden, gehen Sie einfach wie folgt vor:
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' ,
)
Entwickler benötigen auch Zugriff auf Konfigurationsdateien. Die gute Nachricht ist, dass ihre Verwendung lediglich die Deklaration eines anderen Objekts ( AppriseConfig genannt) erfordert, das das Apprise- Objekt aufnehmen kann. Sie können Konfigurations- und Benachrichtigungseinträge auch beliebig oft beliebig kombinieren und anpassen! Mehr über die erwartete Struktur der Konfigurationsdateien können Sie hier lesen.
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' ,
)
Anhänge können mit der Apprise-API ganz einfach versendet werden:
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'
)
Um mehr als einen Anhang zu senden, verwenden Sie stattdessen einfach eine Liste, einen Satz oder ein Tupel:
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 ,
)
Standardmäßig werden für diejenigen, die über die Apprise-API erstellen, überhaupt keine benutzerdefinierten Plugins geladen. Es liegt im Ermessen der Entwickler, benutzerdefinierte Module zu laden. Sollten Sie sich jedoch dafür entscheiden, ist es so einfach, den Pfadverweis vor der Initialisierung Ihrer Apprise()
-Instanz in das AppriseAsset()
Objekt einzufügen.
Zum Beispiel:
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" )
Weitere Informationen zum Erstellen eigener benutzerdefinierter Benachrichtigungen und/oder Hooks finden Sie hier.
Persistenter Speicher ermöglicht es Apprise, wiederkehrende Aktionen optional auf der Festplatte zwischenzuspeichern. Dadurch kann der Aufwand für das Senden einer Benachrichtigung erheblich reduziert werden.
Es gibt drei Betriebszustände des persistenten Speichers, mit denen Apprise arbeiten kann:
auto
: Gesammelte Cache-Informationen bei Bedarf in das Dateisystem leeren. Diese Option ist unglaublich leicht. Dies ist das Standardverhalten für die gesamte CLI-Nutzung.flush
: Löscht bei jeder Transaktion alle Cache-Informationen in das Dateisystem.memory
: Persistenten Speicher effektiv deaktivieren. Die für jedes verwendete Plugin erforderliche Zwischenspeicherung der Daten erfolgt im Speicher. Apprise funktioniert effektiv wie immer, bevor persistenter Speicher verfügbar war. Diese Einstellung stellt sicher, dass kein Inhalt auf die Festplatte geschrieben wird.auto
oder flush
. Dies erfolgt über das AppriseAsset()
Objekt und wird weiter unten in dieser Dokumentation erläutert. Sie können den storage
in Ihrem CLI-Aufruf angeben, um die verfügbaren persistenten Speicheroptionen anzuzeigen.
# 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
Sie können Ihre Ergebnisse auch filtern, indem Sie Tags und/oder URL-Identifikatoren hinzufügen. Wenn Sie eine Auflistung ( apprise storage list
) erhalten, sehen Sie möglicherweise Folgendes:
# 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
Die Cache-Zustände (persistenter Speicher) sind:
unused
: Dieses Plugin hat nichts für Wiederverwendungs-/Cache-Zwecke auf die Festplatte übertragenactive
: Dieses Plugin hat Inhalte auf die Festplatte geschrieben. Zumindest hat es einen dauerhaften Speicherort vorbereitet, in den geschrieben werden kann.stale
: Das System hat einen Speicherort erkannt, an den möglicherweise in der Vergangenheit eine URL geschrieben hat, es gibt jedoch keine Verknüpfung mit den bereitgestellten URLs. Es verschwendet wahrscheinlich Platz oder ist nicht mehr von Nutzen.Mithilfe dieser Informationen können Sie Ihre Ergebnisse filtern, indem Sie nach Ihrem Befehl URL-ID- Werte (UID) angeben. Zum Beispiel:
# 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
Bei Verwendung der CLI ist der persistente Speicher standardmäßig auf den Betriebsmodus „ auto
eingestellt. Sie können dies ändern, indem Sie während Ihrer Aufrufe --storage-mode=
( -SM
) angeben. Wenn Sie sicherstellen möchten, dass es immer auf einen Wert Ihrer Wahl eingestellt ist.
Weitere Informationen zur dauerhaften Speicherung finden Sie hier.
Für Entwickler ist der persistente Speicher standardmäßig auf den Betriebsmodus des memory
eingestellt.
Es liegt im Ermessen des Entwicklers, es zu aktivieren (indem es entweder auf auto
oder flush
umgestellt wird). Sollten Sie sich dafür entscheiden: Es ist so einfach, die Informationen vor der Initialisierung Ihrer Apprise()
-Instanz in das AppriseAsset()
-Objekt aufzunehmen.
Zum Beispiel:
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 )
Weitere Informationen zur dauerhaften Speicherung finden Sie hier.
Wenn Sie mehr über diese und andere Methoden zum Anpassen Ihrer eigenen Benachrichtigungen erfahren möchten, sehen Sie sich bitte die folgenden Links an:
Möchten Sie Apprise besser machen?