ntfy Delphi 相关消息接口文档

news2024/12/23 10:19:52

关联文档:

  1. ntfy 实现消息订阅和通知(无需注册、无需服务器,太好了)_海纳老吴的博客-CSDN博客
  2. 群晖 nas 自建 ntfy 通知服务(梦寐以求)_海纳老吴的博客-CSDN博客

目录

一、消息实体对象接口

1. 消息发布方消息接口

2. 消息订阅方接口


一、消息实体对象接口

1. 消息发布方消息接口

uses
  Notify.Notification.Contract;


//实际定义的接口
INotifyNotification = interface
    ['{BE2E83B7-C39E-4985-93F9-4468976B6AC5}']
    function Topic: String; overload;
    function Topic(const AValue: String): INotifyNotification; overload;
    function MessageContent: String; overload;
    function MessageContent(const AValue: String): INotifyNotification; overload;
    function Title: String; overload;
    function Title(const AValue: String): INotifyNotification; overload;
    function Tags: INotifyTags; overload;
    function Tags(const AValue: INotifyTags): INotifyNotification; overload;
    function Priority: TNotifyPriority; overload;
    function Priority(const AValue: TNotifyPriority): INotifyNotification; overload;
    function AttachURL(const AValue: String): INotifyNotification; overload;
    function FilePath: String; overload;
    function AttachFile(const AValue: String): INotifyNotification; overload;
    function FileName: String; overload;
    function Click: String overload;
    function Click(const AValue: String): INotifyNotification; overload;
    function Action: INotifyAction; overload;
    function Action(const AValue: INotifyAction): INotifyNotification; overload;
    function ClearActions: INotifyNotification; overload;
    function AsJSONString: String;
    function Email: String; overload;
    function Email(const AValue: String): INotifyNotification; overload;
    function Icon: String; overload;
    function Icon(const AValue: String): INotifyNotification; overload;
    function Delay: String; overload;
    function Delay(const AValue: String): INotifyNotification; overload;
  end;

接口说明:

序号参数(函数)说明
1Topicstring:字面意思是主题,实际就是消息发布方和订阅放约定的"暗号"。只有这个"暗号"对上了,订阅放才能收到发布方的消息。
2MessageContentstring:发布的消息内容字符串,最大长度4096字节
3Titlestring:标题,消息体的标题,一般设置为简短的URL
4TagsINotifyTags:

可以用表情符号和其他相关字符串标记信息:

表情符号: 如果标签与表情符号简码相匹配,就会被转换为表情符号并添加到标题或信息中。
其他标签: 如果标签不匹配,则会在通知下方列出。
此功能对于警告(⚠️、️🚨 或 🚩)等内容非常有用,但也可以简单地标记其他信息(如脚本名称、主机名等)。请使用表情符号简码列表了解哪些标记可以转换为表情符号。

参见:Sending messages - ntfy

5PriorityTNotifyPriority:所有信息都有一个优先级,它定义了手机通知你的紧急程度。总共分5级,默认是3,数值大表示优先级高。
6AttachURLINotifyNotification:

您可以使用外部 URL 来指定附件的托管位置,而不是向手机发送本地文件。这可以是 Dropbox 链接、社交媒体上的文件或任何其他公开可用的 URL。由于文件是外部托管的,因此上述的过期时间或大小限制在此不适用。

要附加外部文件,只需输入AValue参数即可,例如 https://example.com/flower.jpg 会生成文件名 flower.jpg)。要覆盖此文件名,可以发送 X-Filename 标头或查询参数(或其任何别名 Filename、File 或 f)。

7AttachFile

要将电脑中的文件作为附件发送,可以将其作为 PUT 请求主体发送。如果信息大于最大信息大小(4,096 字节)或包含非 UTF-8 字符,ntfy 服务器会自动检测 MIME 类型和大小,并将信息作为附件文件发送。要以附件形式发送较小的纯文本信息或文件,必须通过 X-Filename 标头或查询参数(或其别名 Filename、File 或 f)传递文件名。

默认情况下,按照 ntfy.sh 的配置方式,附件的最大大小为 15 MB(每个访问者的附件总大小为 100 MB)。附件会在 3 小时后过期,这通常会给用户足够的时间下载,或让安卓应用自动下载。还请查看以下其他限制。

8Clickstring:您可以定义点击通知时打开的 URL。如果您的通知与 Zabbix 警报或您希望提供深度链接的事务有关,这可能会很有用。点击通知将打开网页浏览器(或应用程序)并打开网站。

要定义通知的点击操作,请将 URL 作为 X-Click 标头(或其别名 Click)的值。如果传递的是网站 URL(http:// 或 https://),网络浏览器就会打开。如果传递的是可由其他应用程序处理的其他 URI,则负责的应用程序可能会打开。

例如

http:// 或 https:// 将打开浏览器(如果注册了 URL,则打开应用程序)
mailto:链接将打开您的邮件应用程序,如 mailto:phil@example.com
geo:链接将打开谷歌地图,例如 geo:0,0?q=1600+Amphitheatre+Parkway,+Mountain+View,+CA
ntfy:// 链接将打开 ntfy(参见 ntfy:// 链接),例如 ntfy://ntfy.sh/stats
twitter:// 链接将打开 Twitter,例如 twitter://user?screen_name=...
...
 
9Action

您可以为通知添加操作按钮,让自己直接对通知做出反应。这一点非常有用,而且应用广泛。

您可以控制家用电器(打开/关闭车库门、改变恒温器的温度......),对常见的监控警报做出反应(磁盘已满时清除日志......),还可以做很多其他事情。一切尽在掌握。

目前支持以下操作:

查看: 点击操作按钮后打开网站或应用程序
广播: 广播:点击操作按钮时发送安卓广播意图(仅支持安卓系统)
http:点击操作按钮时发送 HTTP POST/GET/PUT 请求

10Email可以通过邮件发布消息
11Icon您可以在通知文本旁边添加一个图标。只需通过 X-Icon 标头或查询参数(或其别名 Icon)来指定图标所在的 URL。客户端将自动下载该图标(除非该图标已缓存在本地,且使用时间不超过 24 小时),并将其显示在通知中。图标会缓存在客户端本地,直到通知被删除。目前只支持 JPEG 和 PNG 图像。
12Delay

您可以延迟发送信息,让 ntfy 在稍后日期发送。这可以用来给自己发送提醒信息,甚至在以后执行命令(如果订阅者对信息采取了行动)。

使用方法非常简单。您可以使用 X-Delay 标头(或其任何别名:Delay、X-At、At、X-In 或 In)设置发送时间,可以指定 Unix 时间戳(如 1639194738)、持续时间(如 30m、3h、2 天)或自然语言时间字符串(如上午 10 点、晚上 8:30、明天、下午 3 点、星期二、上午 7 点等)。

从今天起,您可以设置的最小延迟时间为 10 秒,最大延迟时间为 3 天。目前无法进行其他配置。

2. 消息订阅方接口

unit Notify.Event.Contract;

interface

uses
  System.SysUtils,
  Notify.Types,
  Notify.Action.Contract,
  Notify.Attachment.Contract,
  System.Generics.Collections;

type

  INotifyEventActions = TDictionary<String, INotifyAction>;

  INotifyEvent = interface
    ['{0342B585-BB88-4A63-9C41-8848B90B6042}']
    function Id: String; overload;
    function Id(const AValue: String): INotifyEvent; overload;
    function Time: Integer; overload;
    function Time(const AValue: Integer): INotifyEvent; overload;
    function Event: String; overload;
    function Event(const AValue: String): INotifyEvent; overload;
    function Topic: String; overload;
    function Topic(const AValue: String): INotifyEvent; overload;
    function Tags: TArray<String>; overload;
    function Tags(const AValue: TArray<String>): INotifyEvent; overload;
    function Click: String; overload;
    function Click(const AValue: String): INotifyEvent; overload;
    function Title: String; overload;
    function Title(const AValue: String): INotifyEvent; overload;
    function MessageContent: String; overload;
    function MessageContent(const AValue: String): INotifyEvent; overload;
    function Priority: TNotifyPriority; overload;
    function Priority(const AValue: TNotifyPriority): INotifyEvent; overload;
    function Action: INotifyAction; overload;
    function Action(const AValue: INotifyAction): INotifyEvent; overload;
    function Actions: INotifyEventActions;
    function Attachment: INotifyAttachment; overload;
    function Attachment(const AValue: INotifyAttachment): INotifyEvent; overload;
    function Icon: String; overload;
    function Icon(const AValue: String): INotifyEvent; overload;
  end;

  TNotifyEventProc = TProc<INotifyEvent>;

implementation

end.

接口说明:

订阅方的主体参数和发布方是一致的,但是订阅放方对了如下参数:

FieldRequiredTypeExampleDescription
id✔️stringhwQ2YpKdmgRandomly chosen message identifier
time✔️number1635528741Message date time, as Unix time stamp
expires(✔)️number1673542291Unix time stamp indicating when the message will be deleted, not set if Cache: no is sent
event✔️openkeepalivemessage, or poll_requestmessageMessage type, typically you'd be only interested in message
topic✔️stringtopic1,topic2Comma-separated list of topics the message is associated with; only one for all message events, but may be a list in open events
message-stringSome messageMessage body; always present in message events
title-stringSome titleMessage title; if not set defaults to ntfy.sh/<topic>
tags-string array["tag1","tag2"]List of tags that may or not map to emojis
priority-1, 2, 3, 4, or 54Message priority with 1=min, 3=default and 5=max
click-URLhttps://example.comWebsite opened when notification is clicked
actions-JSON arraysee actions buttonsAction buttons that can be displayed in the notification
attachment-JSON objectsee belowDetails about an attachment (name, URL, size, ...)

Attachment (part of the message, see attachments for details):

FieldRequiredTypeExampleDescription
name✔️stringattachment.jpgName of the attachment, can be overridden with X-Filename, see attachments
url✔️URLhttps://example.com/file.jpgURL of the attachment
type-️mime typeimage/jpegMime type of the attachment, only defined if attachment was uploaded to ntfy server
size-️number33848Size of the attachment in bytes, only defined if attachment was uploaded to ntfy server
expires-️number1635528741Attachment expiry date as Unix time stamp, only defined if attachment was uploaded to ntfy server

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/880768.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ssm营业厅宽带系统源码和论文

ssm简易版营业厅宽带系统源码和论文018 开发工具&#xff1a;idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 技术&#xff1a;ssm 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c…

华为OD机试 - 查找众数及中位数(Java 2023 B卷 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷&#…

在Windows Server 2008上启用自动文件夹备份

要在Windows Server 2008上启用自动文件夹备份&#xff0c;您可以使用内置的Windows备份功能。下面是如何设置它的方法&#xff1a; 1. 点击“开始”按钮并选择“服务器管理器”&#xff0c;打开“服务器管理器”。 2. 在“服务器管理器”窗口中&#xff0c;单击左侧窗格中的“…

Failed to connect to bitbucket.org port 443

浏览器可以访问bitbucket&#xff0c;但是在终端或者sourcetree上死活无法进行pull, push等操作。 Root Cause&#xff1a;“【翻】【墙】软件”使用了http proxy&#xff0c;所以也得为git设置相同的http proxy。 所以&#xff0c;解决方法是&#xff1a; 1&#xff0c;查看“…

【环境配置】Windows 10 安装 PyTorch 开发环境,以及验证 YOLOv8

Windows 10 安装 PyTorch 开发环境&#xff0c;以及验证 YOLOv8 最近搞了一台Windows机器&#xff0c;准备在上面安装深度学习的开发环境&#xff0c;并搭建部署YOLOv8做训练和测试使用&#xff1b; 环境&#xff1a; OS&#xff1a; Windows 10 显卡&#xff1a; RTX 3090 安…

YOLOv8 : 网络结构

一. YOLOv8网络结构 1. Backbone YOLOv8的Backbone同样参考了CSPDarkNet-53网络&#xff0c;我们可以称之为CSPDarkNet结构吧&#xff0c;与YOLOv5不同的是&#xff0c;YOLOv8使用C2f(CSPLayer_2Conv)代替了C3模块(如果你比较熟悉YOLOv5的网络结构&#xff0c;那YOLOv8的网络…

非线性 简介

让我们分析一下现实世界物体的运动规律 摇摇头&#xff0c;感受一下你的头是怎样运动的 我们的头侧向一方&#xff0c;准备往另一边转动时&#xff0c;先加速&#xff0c;等快要到达目标时&#xff0c;马上减速。 这是摇头时头的运动曲线 加速的时间很短&#xff0c;所以看起来…

【eNSP】OSPF实验

【eNSP】OSPF实验 原理术语Router-idOSPF区域DR与DDR 过程 实验根据图片连接模块配置设备名称和IP地址修改R1&#xff1a;修改R2&#xff1a;修改R3修改R4修改R5测试连通性 OSPF设置设置进程号和RID划分OSPF区域DR设置&#xff0c;2way实验设置查看设置结果 口令验证 原理 OSP…

控制威格士伺服阀放大器SM4-15、SX4-10、SX4-12

威格士的SM4-10、SM4-12、SM4-15、SX4-10、SX4-12、SX4-15、SM4-20、SX4-20、SM4-30、SM4-40系列伺服阀搭配模块式伺服放大器提供系统闭环控制&#xff0c;具有位置精度高、速度曲线可重复以及可预测的力或力矩的调节等优点。 伺服阀的典型应用包括注塑&#xff0f;吹塑成形系…

低代码开发工具:JVS轻应用之间如何实现数据的调用?

在低代码开发平台中&#xff0c;如何实现应用之间的数据共享呢&#xff1f;最标准的方式是通过接口&#xff0c;本文介绍JVS轻应用如何实现将数据通过API输出、轻应用如何实现体内API数据的获取&#xff1f;实现方式如下图所示&#xff0c;不管是数据提供方&#xff0c;还是数据…

ebay灯串UL报告 UL588检测标准

季节性和装饰性照明用品即灯串以及配件都是便携式插头连接的临时性商品&#xff0c;最大额定输入电压为 120 伏。 由 ILAC ISO 17025 认证的实验室出具的检测报告&#xff0c;确认每件商品均已经过检测&#xff0c;符合下列要求&#xff1a; 季节性和装饰性照明用品(灯串&…

idea下载安装教程

idea下载安装教程 文章目录 idea下载安装教程1、下载2、安装 1、下载 进入官网&#xff1a; https://www.jetbrains.com/ 下滑&#xff1a; 点击Download 这个就是专业版了&#xff0c;需要付费&#xff0c;学生认证就是用的这个专业版的 但是2023的版本对于页面做了很大的改…

物联网工程应用实训室建设方案

一、物联网工程应用系统概述 1.1物联网工程定义 物联网工程&#xff08;Internet of Things Engineering&#xff09;是一种以信息技术&#xff08;IT&#xff09;来改善实体世界中人们生活方式的新兴学科&#xff0c;它利用互联网技术为我们的日常生活活动提供服务和增益&am…

东方晶源亮相第十一届半导体设备年会,共话发展“芯”机遇

8月11日&#xff0c;以“协力同芯抢机遇&#xff0c;集成创新造设备”为主题的第十一届&#xff08;2023年&#xff09;中国电子专用设备工业协会半导体设备年会暨产业链合作论坛&#xff08;CSEAC&#xff09;在无锡太湖国际博览中心圆满闭幕。为期3天的CSEAC&#xff0c;通过…

SpringBoot知识点总结

概述 SpringBoot的主要目的在于简化Spring应用程序的开发&#xff0c;提供了一个引导类SpringBootApplication.run(配置类名.calss)作为程序的启动入口。 注意&#xff1a; <dependencyManagement>中定义的jar包并不是直接加载到工程中 restful风格 RestController:配…

涉及近300个业务场景,重庆银行数字员工平台建设解析

随着数字化转型战略规划的逐步落地&#xff0c;重庆银行于2022年6月成功建设了数字员工平台&#xff0c;该平台已成为行内数字化转型的标杆应用。数字员工平台以RPA&#xff08;机器人流程自动化&#xff09;为基础&#xff0c;AI&#xff08;人工智能&#xff09;技术为抓手&a…

码银送书第五期《互联网广告系统:架构、算法与智能化》

广告平台的建设和完善是一项长期工程。例如&#xff0c;谷歌早于2003年通过收购Applied Semantics开展Google AdSense 项目&#xff0c;而直到20年后的今天&#xff0c;谷歌展示广告平台仍在持续创新和提升。广告平台是负有营收责任的复杂在线平台&#xff0c;对其进行任何改动…

【动态规划】回文串问题

文章目录 动态规划&#xff08;回文串问题&#xff09;1. 回文子串2. 最长回文子串3. 回文串分割 IV4. 分割回文串 ||5. 最长回文子序列6. 让字符串成为回文串的最小插入次数 动态规划&#xff08;回文串问题&#xff09; 1. 回文子串 题目链接 状态表示 f[i][j]表示 i 到 j …

W5500-EVB-PICO 做UDP Server进行数据回环测试(七)

前言 前面我们用W5500-EVB-PICO 开发板在TCP Client和TCP Server模式下&#xff0c;分别进行数据回环测试&#xff0c;本章我们将用开发板在UDP Server模式下进行数据回环测试。 UDP是什么&#xff1f;什么是UDP Server&#xff1f;能干什么&#xff1f; UDP (User Dataqram P…

小程序的排名规则是什么?

如何提高小程序微信搜一搜排名呢&#xff1f;AdSet带大家了解&#xff0c;影响小程序搜索排名的五个关键要素&#xff1a; 关键因素一&#xff1a;最近使用过 在小程序的排序规则里&#xff0c;有一条是最霸道的&#xff0c;也是第1优先级——使用过。只要用户使用过这个小程…