이 섹션에서는 이 라이브러리에서 지원하는 모든 서비스를 식별합니다. 지원되는 모듈에 대한 자세한 내용은 여기에서 위키를 확인하세요.
아래 표에는 이 도구가 지원하는 서비스와 이를 활용하기 위해 사용해야 하는 서비스 URL의 예가 나와 있습니다. 아래 나열된 서비스 중 하나를 클릭하면 해당 서비스에 액세스하도록 Apprise를 구성하는 방법에 대한 자세한 내용을 볼 수 있습니다.
알림 서비스 | 서비스 ID | 기본 포트 | 예제 구문 |
---|---|---|---|
어플라이즈 API | 알림:// 또는 알림:// | (TCP) 80 또는 443 | apprise://호스트 이름/토큰 |
AWS SES | ses:// | (TCP) 443 | ses://user@domain/AccessKeyID/AccessSecretKey/RegionName ses://user@domain/AccessKeyID/AccessSecretKey/RegionName/email1/email2/emailN |
짖다 | 짖다:// | (TCP) 80 또는 443 | 짖음://호스트 이름 짖음://호스트 이름/device_key 껍질://호스트 이름/device_key1/device_key2/device_keyN 짖는 소리://호스트 이름 짖는 소리://호스트 이름/장치_키 짖는 소리://호스트 이름/device_key1/device_key2/device_keyN |
찬미하다 | 찬양:// | (TCP) 443 | 찬티파이://토큰 |
불화 | 불화:// | (TCP) 443 | 디스코드://webhook_id/webhook_token discord://avatar@webhook_id/webhook_token |
엠비 | emby:// 또는 embys:// | (TCP) 8096 | emby://사용자@호스트 이름/ emby://사용자:비밀번호@호스트 이름 |
에니그마2 | enigma2:// 또는 enigma2s:// | (TCP) 80 또는 443 | enigma2://호스트 이름 |
FCM | fcm:// | (TCP) 443 | fcm://project@apikey/DEVICE_ID fcm://project@apikey/#TOPIC fcm://project@apikey/DEVICE_ID1/#topic1/#topic2/DEVICE_ID2/ |
페이슈 | 페이슈:// | (TCP) 443 | 페이슈://token |
대군 | 대군:// | (TCP) 443 | 무리://토큰 무리://botname@token 무리://app_token/u:사용자 ID 무리://app_token/g:channel_id 무리://app_token/u:userid/g:channel_id |
구글 채팅 | 채팅:// | (TCP) 443 | gchat://workspace/key/token |
고티파이 | gotify:// 또는 gotifys:// | (TCP) 80 또는 443 | gotify://호스트 이름/토큰 gotifys://hostname/token?priority=high |
으르렁 | 으르렁거리다:// | (UDP) 23053 | 으르렁거림://호스트 이름 으르렁거림://호스트 이름:포트번호 으르렁거리다://password@hostname 으르렁거리다://password@hostname:port 참고 : 이전 v1.x 프로토콜을 사용하여 으르렁거리는 요청이 작동하도록 허용할 수 있는 get 매개변수 버전을 사용할 수도 있습니다. 예는 다음과 같습니다:rowl://hostname?version=1 |
길드 | 길드:// | (TCP) 443 | 길드://webhook_id/webhook_token 길드://avatar@webhook_id/webhook_token |
홈어시스턴트 | hassio:// 또는 hassios:// | (TCP) 8123 또는 443 | hassio://호스트 이름/액세스 토큰 hassio://user@hostname/accesstoken hassio://user:password@hostname:port/accesstoken hassio://호스트 이름/선택적/경로/액세스 토큰 |
IFTTT | 그렇다면:// | (TCP) 443 | ifttt://webhooksID/이벤트 ifttt://webhooksID/Event1/Event2/EventN ifttt://webhooksID/Event1/?+Key=값 ifttt://webhooksID/Event1/?-Key=value1 |
가입하다 | 가입하다:// | (TCP) 443 | 가입://apikey/device 가입://apikey/device1/device2/deviceN/ 가입://apikey/그룹 가입://apikey/groupA/groupB/groupN 가입://apikey/DeviceA/groupA/groupN/DeviceN/ |
코디 | kodi:// 또는 kodis:// | (TCP) 8080 또는 443 | 코디://호스트 이름 코디://사용자@호스트 이름 kodi://사용자:비밀번호@호스트 이름:포트 |
쿠물로스 | 쿠물로스:// | (TCP) 443 | kumulos://apikey/serverkey |
라메트릭 시간 | 라메트릭:// | (TCP) 443 | lametric://apikey@device_ipaddr lametric://apikey@호스트 이름:포트 lametric://client_id@client_secret |
선 | 선:// | (TCP) 443 | 라인://Token@User 라인://토큰/User1/User2/UserN |
루나시 | 루나시:// | (TCP) 80 또는 443 | lunasea://user:pass@+FireBaseDevice/ lunasea://user:pass@FireBaseUser/ lunasea://user:pass@hostname/+FireBaseDevice/ lunasea://user:pass@hostname/@FireBaseUser/ |
메일건 | 메일건:// | (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" |
마스토돈 | 마스토돈:// 또는 마스토돈:// | (TCP) 80 또는 443 | 마스토돈://access_key@hostname 마스토돈://access_key@hostname/@user 마스토돈://access_key@hostname/@user1/@user2/@userN |
행렬 | 매트릭스:// 또는 매트릭스:// | (TCP) 80 또는 443 | 매트릭스://호스트 이름 매트릭스://사용자@호스트 이름 매트릭스://사용자:pass@hostname:port/#room_alias 매트릭스://사용자:pass@hostname:port/!room_id 매트릭스://사용자:pass@hostname:port/#room_alias/!room_id/#room2 매트릭스://token@hostname:port/?webhook=matrix 매트릭스://사용자:token@hostname/?webhook=slack&format=markdown |
가장 중요한 | mmost:// 또는 mmosts:// | (TCP) 8065 | mmost://호스트 이름/authkey mmost://호스트 이름:80/authkey mmost://user@hostname:80/authkey mmost://호스트 이름/authkey?channel=channel mmosts://호스트 이름/authkey mmosts://user@hostname/authkey |
Microsoft Power Automate/워크플로(MSTeams) | 작업흐름:// | (TCP) 443 | 워크플로://WorkflowID/Signature/ |
마이크로소프트 팀즈 | msteams:// | (TCP) 443 | msteams://TokenA/TokenB/TokenC/ |
미스키 | misskey:// 또는 misskeys:// | (TCP) 80 또는 443 | misskey://access_token@호스트 이름 |
MQTT | mqtt:// 또는 mqtts:// | (TCP) 1883 또는 8883 | mqtt://호스트 이름/주제 mqtt://user@hostname/topic mqtts://user:pass@hostname:9883/topic |
넥스트클라우드 | ncloud:// 또는 nclouds:// | (TCP) 80 또는 443 | ncloud://adminuser:pass@host/User nclouds://adminuser:pass@host/User1/User2/UserN |
NextcloudTalk | nctalk:// 또는 nctalks:// | (TCP) 80 또는 443 | nctalk://user:pass@host/RoomId nctalks://user:pass@host/RoomId1/RoomId2/RoomIdN |
노티카 | 노티카:// | (TCP) 443 | 노티카://토큰/ |
알림 | 알림arr:// | (TCP) 443 | 알림:://apikey/#channel 알림:://apikey/#channel1/#channel2/#channeln |
알림 | 알림:// | (TCP) 443 | notifico://ProjectID/MessageHook/ |
ntfy | ntfy:// | (TCP) 80 또는 443 | ntfy://주제/ ntfys://주제/ |
오피스 365 | o365:// | (TCP) 443 | o365://테넌트ID:계정이메일/클라이언트ID/클라이언트비밀 o365://TenantID:AccountEmail/ClientID/ClientSecret/TargetEmail o365://TenantID:AccountEmail/ClientID/ClientSecret/TargetEmail1/TargetEmail2/TargetEmailN |
원시그널 | 원시그널:// | (TCP) 443 | onesignal://AppID@APIKey/PlayerID onesignal://TemplateID:AppID@APIKey/UserID onesignal://AppID@APIKey/#IncludeSegment onesignal://AppID@APIKey/Email |
Opsgenie | opsgenie:// | (TCP) 443 | opsgenie://API키 opsgenie://APIKey/사용자ID opsgenie://APIKey/#팀 opsgenie://APIKey/*일정 opsgenie://APIKey/^Escalation |
호출기 의무 | 페이지듀티:// | (TCP) 443 | pagerduty://IntegrationKey@ApiKey pagerduty://IntegrationKey@ApiKey/소스/구성요소 |
호출기트리 | 페이지트리:// | (TCP) 443 | 페이지트리://integration_id |
구문 분석 플랫폼 | 구문 분석:// 또는 구문 분석:// | (TCP) 80 또는 443 | 구문 분석://AppID:MasterKey@Hostname 구문 분석://AppID:MasterKey@Hostname |
팝콘알림 | 팝콘:// | (TCP) 443 | 팝콘://ApiKey/ToPhoneNo 팝콘://ApiKey/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ 팝콘://ApiKey/ToEmail 팝콘://ApiKey/ToEmail1/ToEmail2/ToEmailN/ 팝콘://ApiKey/ToPhoneNo1/ToEmail1/ToPhoneNoN/ToEmailN |
배회 | 배회:// | (TCP) 443 | 배회://apikey 배회://apikey/providerkey |
푸시불릿 | pbul:// | (TCP) 443 | pbul://accesstoken pbul://accesstoken/#채널 pbul://accesstoken/A_DEVICE_ID pbul://accesstoken/[email protected] pbul://accesstoken/#channel/#channel2/[email protected]/DEVICE |
푸시젯 | pjet:// 또는 pjets:// | (TCP) 80 또는 443 | pjet://호스트 이름/비밀 pjet://호스트 이름:포트/비밀 pjets://secret@hostname/secret pjets://호스트 이름:포트/비밀 |
푸시(Techulus) | 푸시:// | (TCP) 443 | 푸시://apikey/ |
푸시됨 | 밀렸다:// | (TCP) 443 | 푸시://appkey/appsecret/ 푸시://appkey/appsecret/#ChannelAlias 푸시://appkey/appsecret/#ChannelAlias1/#ChannelAlias2/#ChannelAliasN push://appkey/appsecret/@UserPushedID pushed://appkey/appsecret/@UserPushedID1/@UserPushedID2/@UserPushedIDN |
푸시미 | 푸시미:// | (TCP) 443 | 푸시미://토큰/ |
쉬운 일 | 포버:// | (TCP) 443 | pover://user@token pover://user@token/DEVICE pover://user@token/DEVICE1/DEVICE2/DEVICEN 참고 : user_id와 토큰을 모두 지정해야 합니다. |
푸시세이퍼 | psafer:// 또는 psafers:// | (TCP) 80 또는 443 | psafer://privatekey psafers://privatekey/DEVICE psafer://privatekey/DEVICE1/DEVICE2/DEVICEN |
뻔뻔한 | 강압적:// | (TCP) 443 | pushy://apikey/DEVICE pushy://apikey/DEVICE1/DEVICE2/DEVICEN 푸시 : //apikey/TOPIC 푸시 : //apikey/TOPIC1/TOPIC2/TOPICN |
푸시디어 | pushdeer:// 또는 pushdeers:// | (TCP) 80 또는 443 | 푸시디어://pushKey pushdeer://호스트 이름/pushKey pushdeer://호스트 이름:포트/푸시키 |
레딧 | 레딧:// | (TCP) 443 | reddit://user:password@app_id/app_secret/subreddit reddit://user:password@app_id/app_secret/sub1/sub2/subN |
반란 | 반란:// | (TCP) 443 | 반란://bottoken/ChannelID 반란://bottoken/ChannelID1/ChannelID2/ChannelIDN |
로켓채팅 | 로켓:// 또는 로켓:// | (TCP) 80 또는 443 | 로켓://사용자:비밀번호@호스트 이름/RoomID/채널 로켓://사용자:비밀번호@호스트 이름:443/#Channel1/#Channel1/RoomID 로켓://사용자:비밀번호@호스트 이름/#채널 로켓://webhook@호스트 이름 로켓://webhook@hostname/@User/#Channel |
RSyslog | rsyslog:// | (UDP) 514 | rsyslog://호스트 이름 rsyslog://호스트 이름/시설 |
리버 | 강:// | (TCP) 443 | ryver://조직/토큰 ryver://botname@Organization/Token |
SendGrid | sendgrid:// | (TCP) 443 | sendgrid://APIToken:FromEmail/ sendgrid://APIToken:FromEmail/ToEmail sendgrid://APIToken:FromEmail/ToEmail1/ToEmail2/ToEmailN/ |
서버찬 | schan:// | (TCP) 443 | schan://sendkey/ |
신호 API | 신호:// 또는 신호:// | (TCP) 80 또는 443 | 신호://호스트 이름:포트/FromPhoneNo 신호://호스트 이름:포트/FromPhoneNo/ToPhoneNo 신호://호스트 이름:포트/FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
심플푸시 | 스푸쉬:// | (TCP) 443 | 스푸시://apikey spush://salt:password@apikey spush://apikey?event=알림 |
느슨하게 | 느슨하게:// | (TCP) 443 | 여유로운 시간://TokenA/TokenB/TokenC/ 여유 시간://TokenA/TokenB/TokenC/Channel slack://botname@TokenA/TokenB/TokenC/Channel 여유로운 시간://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="From%20User" |
스파크포스트 | 스파크포스트:// | (TCP) 443 | 스파크포스트://user@hostname/apikey 스파크포스트://user@hostname/apikey/email 스파크포스트://user@hostname/apikey/email1/email2/emailN Sparkpost://user@hostname/apikey/?name="From%20User" |
스플렁크 | splunk:// 또는 victorops:/ | (TCP) 443 | splunk://route_key@apikey splunk://route_key@apikey/entity_id |
Streamlabs | strmlabs:// | (TCP) 443 | strmlabs://액세스토큰/ strmlabs://AccessToken/?name=name&identifier=identifier&amount=0¤cy=USD |
Synology 채팅 | 시놀로지:// 또는 시놀로지:// | (TCP) 80 또는 443 | synology://호스트 이름/토큰 synology://호스트 이름:포트/토큰 |
시스템로그 | 시스템로그:// | 해당사항 없음 | 시스템로그:// syslog://시설 |
전보 | 티그램:// | (TCP) 443 | 티그램://bottoken/ChatID 티그램://bottoken/ChatID1/ChatID2/ChatIDN |
지저귀다 | 지저귀다:// | (TCP) 443 | 트위터://CKey/CSecret/AKey/ASecret 트위터://user@CKey/CSecret/AKey/ASecret 트위터://CKey/CSecret/AKey/ASecret/User1/User2/User2 트위터://CKey/CSecret/AKey/ASecret?mode=tweet |
트위스트 | 트위스트:// | (TCP) 443 | 트위스트://비밀번호:로그인 트위스트://비밀번호:로그인/#채널 트위스트://비밀번호:로그인/#팀:채널 트위스트://비밀번호:로그인/#팀:채널1/채널2/#팀3:채널 |
Webex Teams(시스코) | wx팀:// | (TCP) 443 | wxteams://토큰 |
위컴 봇 | 위컴봇:// | (TCP) 443 | wecombot://BotKey |
왓츠앱 | 왓츠앱:// | (TCP) 443 | whatsapp://AccessToken@FromPhoneID/ToPhoneNo whatsapp://템플릿:AccessToken@FromPhoneID/ToPhoneNo |
Wx푸셔 | wxpusher:// | (TCP) 443 | wxpusher://AppToken@UserID1/UserID2/UserIDN wxpusher://AppToken@Topic1/Topic2/Topic3 wxpusher://AppToken@UserID1/Topic1/ |
XBMC | xbmc:// 또는 xbmcs:// | (TCP) 8080 또는 443 | xbmc://호스트 이름 xbmc://사용자@호스트 이름 xbmc://사용자:비밀번호@호스트 이름:포트 |
줄립 채팅 | 줄립:// | (TCP) 443 | zulip://botname@Organization/Token zulip://botname@Organization/Token/Stream zulip://botname@Organization/Token/Email |
알림 서비스 | 서비스 ID | 기본 포트 | 예제 구문 |
---|---|---|---|
아프리카 이야기 | 대화:// | (TCP) 443 | atalk://AppUser@ApiKey/ToPhoneNo atalk://AppUser@ApiKey/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
자동 패킷 보고 시스템(ARPS) | 4월:// | (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 |
대량SMS | 대량문자:// | (TCP) 443 | 대량 SMS://사용자:비밀번호@ToPhoneNo 대량 SMS://사용자:비밀번호@ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
벌크VS | 대량vs:// | (TCP) 443 | 대량vs://사용자:비밀번호@FromPhoneNo 대량vs://사용자:비밀번호@FromPhoneNo/ToPhoneNo 대량vs://사용자:비밀번호@FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
버스트 SMS | 버스트ms:// | (TCP) 443 | burstsms://ApiKey:ApiSecret@FromPhoneNo/ToPhoneNo 버스트sms://ApiKey:ApiSecret@FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
보내기를 클릭하세요 | 클릭 전송:// | (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네트웍스 | d7sms:// | (TCP) 443 | d7sms://token@PhoneNo d7sms://token@ToPhoneNo1/ToPhoneNo2/ToPhoneNoN |
딩톡 | 딩톡:// | (TCP) 443 | 딩톡://token/ 딩톡://token/ToPhoneNo 딩톡://token/ToPhoneNo1/ToPhoneNo2/ToPhoneNo1/ |
무료 모바일 | 프리모바일:// | (TCP) 443 | freemobile://user@password/ |
httpSMS | httpsms:// | (TCP) 443 | httpsms://ApiKey@FromPhoneNo httpsms://ApiKey@FromPhoneNo/ToPhoneNo httpsms://ApiKey@FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
카베네가르 | 카베네거:// | (TCP) 443 | kavenegar://ApiKey/ToPhoneNo kavenegar://FromPhoneNo@ApiKey/ToPhoneNo kavenegar://ApiKey/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN |
메시지버드 | 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/ |
플리보 | 플리보:// | (TCP) 443 | plivo://AuthID@Token@FromPhoneNo plivo://AuthID@Token/FromPhoneNo/ToPhoneNo plivo://AuthID@Token/FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
세븐 | 일곱:// | (TCP) 443 | 7://ApiKey/FromPhoneNo 7://ApiKey/FromPhoneNo/ToPhoneNo 일곱://ApiKey/FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
Société Française du Radiotéléphone(SFR) | sfr:// | (TCP) 443 | sfr://user:password>@spaceId/ToPhoneNo sfr://사용자:비밀번호>@spaceId/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
신호 API | 신호:// 또는 신호:// | (TCP) 80 또는 443 | 신호://호스트 이름:포트/FromPhoneNo 신호://호스트 이름:포트/FromPhoneNo/ToPhoneNo 신호://호스트 이름:포트/FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
신치 | 신치:// | (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이글 | smseagle:// 또는 smseagles:// | (TCP) 80 또는 443 | smseagles://호스트 이름:포트/ToPhoneNo smseagles://호스트 이름:포트/@ToContact smseagles://호스트 이름:포트/#ToGroup smseagles://호스트 이름:포트/ToPhoneNo1/#ToGroup/@ToContact/ |
SMS 관리자 | smsmgr:// | (TCP) 443 | smsmgr://ApiKey@ToPhoneNo smsmgr://ApiKey@ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
쓰리마 게이트웨이 | 삼마:// | (TCP) 443 | threema://GatewayID@secret/ToPhoneNo threema://GatewayID@secret/ToEmail threema://GatewayID@secret/ToThreemaID/ threema://GatewayID@secret/ToEmail/ToThreemaID/ToPhoneNo/... |
트윌리오 | 트윌리오:// | (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:// | (TCP) 443 | voipms://password:이메일/FromPhoneNo voipms://비밀번호:이메일/FromPhoneNo/ToPhoneNo voipms://비밀번호:이메일/FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
Vonage(이전 Nexmo) | 넥스모:// | (TCP) 443 | nexmo://ApiKey:ApiSecret@FromPhoneNo nexmo://ApiKey:ApiSecret@FromPhoneNo/ToPhoneNo nexmo://ApiKey:ApiSecret@FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
알림 서비스 | 서비스 ID | 기본 포트 | 예제 구문 |
---|---|---|---|
Linux DBus 알림 | dbus:// qt:// 말 잘하는:// kde:// | 해당사항 없음 | dbus:// qt:// 말 잘하는:// kde:// |
Linux Gnome 알림 | 금언:// | 해당사항 없음 | 금언:// |
MacOS X 알림 | macosx:// | 해당사항 없음 | macosx:// |
Windows 알림 | 창:// | 해당사항 없음 | 창:// |
서비스 ID | 기본 포트 | 예제 구문 |
---|---|---|
메일로:// | (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 |
메일토스:// | (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에는 mailto:// 서비스를 크게 단순화하는 일부 이메일 서비스(예: yahoo, fastmail, hotmail, gmail 등)가 내장되어 있습니다. 자세한 내용은 여기를 참조하세요.
게시 방법 | 서비스 ID | 기본 포트 | 예제 구문 |
---|---|---|---|
형태 | 양식:// 또는 양식:// | (TCP) 80 또는 443 | 양식://호스트 이름 양식://사용자@호스트 이름 양식://사용자:비밀번호@호스트 이름:포트 양식://호스트 이름/a/경로/to/post/to |
JSON | json:// 또는 jsons:// | (TCP) 80 또는 443 | json://호스트 이름 json://사용자@호스트 이름 json://사용자:비밀번호@호스트 이름:포트 json://호스트 이름/a/path/to/post/to |
XML | xml:// 또는 xmls:// | (TCP) 80 또는 443 | xml://호스트 이름 xml://사용자@호스트이름 xml://사용자:비밀번호@호스트 이름:포트 xml://호스트 이름/a/path/to/post/to |
이 패키지를 설치하는 가장 쉬운 방법은 pypi에서 설치하는 것입니다.
pip install apprise
Apprise는 RPM으로도 패키지되어 있으며 CentOS, Redhat, Rocky, Oracle Linux 등을 지원하는 EPEL을 통해 사용할 수 있습니다.
# 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
Apprise의 그래픽 버전을 확인하여 관리 가능한 웹페이지를 통해 구성 및 알림을 중앙 집중화할 수도 있습니다.
apprise 라는 작은 명령줄 인터페이스(CLI) 도구도 이 패키지와 함께 제공됩니다. 알리려는 서버 URL을 알고 있는 경우 명령줄에 해당 URL을 모두 제공하고 다음과 같은 방식으로 알림을 보낼 수 있습니다.
# 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 '
누구도 명령줄에서 모든 사람이 볼 수 있도록 자격 증명을 공개하고 싶어하지 않습니다. 문제 없습니다. 구성 파일도 지원 합니다. 특정 YAML 형식이나 매우 간단한 TEXT 형식을 모두 처리할 수 있습니다. HTTP 쿼리를 통해서도 이러한 구성 파일을 가져올 수도 있습니다! 여기에서 구성 파일의 예상 구조에 대해 자세히 알아볼 수 있습니다.
# 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는 파일 첨부도 지원합니다! 원하는 만큼 알림에 첨부 파일을 지정하세요.
# 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
자신만의 사용자 정의 schema://
후크를 생성하여 자신만의 사용자 정의 코드를 트리거하려면 간단히 @notify
데코레이터를 포함하여 함수를 래핑하면 됩니다.
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
사용자 정의 Hook을 정의한 후에는 런타임 시 Apprise에 위치를 알려주기만 하면 됩니다.
# 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: \
여기에서 나만의 맞춤 알림 및/또는 후크를 만드는 방법에 대해 자세히 알아볼 수 있습니다.
명령줄 인터페이스(CLI)를 사용하는 사용자는 환경 변수를 활용하여 기본 설정을 미리 설정할 수도 있습니다.
변하기 쉬운 | 설명 |
---|---|
APPRISE_URLS | 명령줄에 명시적으로 지정되지 않은 경우 알림을 보낼 기본 URL을 지정합니다. --config ( -c )가 지정되면 이 변수에 대한 모든 참조가 재정의됩니다. 여러 항목을 구분하려면 공백 및/또는 쉼표( , )를 사용하세요. |
APPRISE_CONFIG_PATH | 사용할 구성 검색 경로를 명시적으로 지정합니다(기본값 재정의). 여기에 정의된 경로는 열거나 참조할 절대 파일 이름을 가리켜야 합니다. 여러 항목을 구분하려면 세미콜론( ; ), 줄 바꿈( n ) 및/또는 캐리지 리턴( r )을 사용하십시오. |
APPRISE_PLUGIN_PATH | 사용할 사용자 정의 플러그인 검색 경로를 명시적으로 지정합니다(기본값 재정의). 여러 항목을 구분하려면 세미콜론( ; ), 줄 바꿈( n ) 및/또는 캐리지 리턴( r )을 사용하십시오. |
APPRISE_STORAGE_PATH | 사용할 영구 스토리지 경로를 명시적으로 지정합니다(기본값 재정의). |
Python 애플리케이션 내에서 알림을 보내려면 다음을 수행하세요.
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' ,
)
개발자도 구성 파일에 액세스해야 합니다. 좋은 소식은 Apprise 객체가 수집할 수 있는 다른 객체( AppriseConfig 라고 함)를 선언하는 것만으로 사용된다는 것입니다. 원하는 만큼 자주 구성 및 알림 항목을 자유롭게 혼합하고 일치시킬 수도 있습니다! 여기에서 구성 파일의 예상 구조에 대해 자세히 알아볼 수 있습니다.
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' ,
)
첨부파일은 Apprise API를 사용하여 매우 쉽게 보낼 수 있습니다.
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'
)
두 개 이상의 첨부 파일을 보내려면 대신 목록, 집합 또는 튜플을 사용하세요.
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 ,
)
기본적으로 Apprise API 내에서 빌드하는 사용자 정의 플러그인은 전혀 로드되지 않습니다. 사용자 정의 모듈을 로드하는 것은 개발자의 재량입니다. 그러나 그렇게 하기로 결정했다면 Apprise()
인스턴스를 초기화하기 전에 AppriseAsset()
객체에 경로 참조를 포함시키는 것만큼 쉽습니다.
예를 들어:
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" )
여기에서 나만의 맞춤 알림 및/또는 후크를 만드는 방법에 대해 자세히 알아볼 수 있습니다.
영구 저장을 통해 Apprise는 선택적으로 반복되는 작업을 디스크에 캐시할 수 있습니다. 이렇게 하면 알림을 보내는 데 사용되는 오버헤드를 크게 줄일 수 있습니다.
Apprise는 다음을 사용하여 작동할 수 있는 3가지 영구 저장소 작동 상태가 있습니다.
auto
: 요청 시 수집된 캐시 정보를 파일 시스템으로 플러시합니다. 이 옵션은 엄청나게 가볍습니다. 이는 모든 CLI 사용에 대한 기본 동작입니다.flush
: 모든 트랜잭션 중에 모든 캐시 정보를 파일 시스템으로 플러시합니다.memory
: 영구 저장소를 효과적으로 비활성화합니다. 사용되는 각 플러그인에 필요한 데이터 캐싱은 메모리에서 수행됩니다. Apprise는 영구 스토리지가 제공되기 전과 마찬가지로 효과적으로 작동합니다. 이 설정을 사용하면 디스크에 콘텐츠가 전혀 기록되지 않습니다.auto
또는 flush
로 작동하도록 구성하지 않는 한 Apprise를 사용하여 개발하는 사람들을 위해 작동하는 모드입니다. 이는 AppriseAsset()
객체를 통해 수행되며 이 문서에서 더 자세히 설명됩니다. CLI 호출에 storage
키워드를 제공하여 사용 가능한 영구 스토리지 옵션을 확인할 수 있습니다.
# 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
태그 및/또는 URL 식별자를 추가하여 결과를 필터링할 수도 있습니다. 목록( apprise storage list
)을 받으면 다음이 표시될 수 있습니다.
# 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
(영구 저장소) 캐시 상태는 다음과 같습니다.
unused
: 이 플러그인은 재사용/캐시 목적으로 디스크에 아무 것도 커밋하지 않았습니다.active
: 이 플러그인은 콘텐츠를 디스크에 기록했습니다. 아니면 최소한 쓸 수 있는 영구 저장 위치를 준비했습니다.stale
: 시스템이 과거에 URL을 썼을 가능성이 있는 위치를 감지했지만 제공된 URL을 사용하여 해당 위치에 연결되는 것이 없습니다. 공간을 낭비하거나 더 이상 사용되지 않을 수 있습니다.이 정보를 사용하면 명령 뒤에 URL ID (UID) 값을 지정하여 결과를 필터링할 수 있습니다. 예를 들어:
# 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
CLI를 사용하는 경우 영구 스토리지는 기본적으로 auto
작동 모드로 설정됩니다. 호출 중에 --storage-mode=
( -SM
)를 제공하여 이를 변경할 수 있습니다. 항상 원하는 값으로 설정되도록 하려는 경우.
영구 저장소에 대한 자세한 내용을 보려면 여기를 방문하세요.
개발자의 경우 영구 저장소는 기본적으로 memory
작동 모드로 설정됩니다.
이를 활성화하는 것은 개발자의 재량에 달려 있습니다( auto
또는 flush
로 전환). 그렇게 하기로 선택했다면 Apprise()
인스턴스를 초기화하기 전에 AppriseAsset()
객체에 정보를 포함하는 것만큼 쉽습니다.
예를 들어:
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 )
영구 저장소에 대한 자세한 내용을 보려면 여기를 방문하세요.
이에 대한 자세한 내용과 알림을 사용자 정의하는 방법에 대한 다른 방법을 알아보려면 다음 링크를 확인하세요.
Apprise를 개선하는 데 도움을 주고 싶으신가요?