Skip to content

Signal

URL 格式

signal://[user[:password]@]host[:port]/source_phone/recipient1[,recipient2,...]

设置 Signal API 服务器

Signal 通知需要一个 Signal API 服务器,该服务器可以代表注册的 Signal 账户发送消息。这些实现基于 signal-cli,这是 Signal 的非官方命令行界面(3.8k+ stars)。

流行的开源实现包括:

常见设置包括:

  1. 电话号码: 一个专门注册到 Signal 的电话号码
  2. API 服务器: 运行具有 REST API 功能的 signal-cli 的服务器
  3. 账户链接: 将服务器作为辅助设备链接到您的 Signal 账户
  4. 可选安全层: 通过代理进行身份验证和端点限制

服务器在初始设置期间必须能够接收 SMS 验证码,并保持与 Signal 服务器的持久连接。

设置资源

有关详细设置说明,请参阅 signal-cli-rest-api 文档secured-signal-api 文档

URL 参数

主机和端口

  • host: 您的 Signal API 服务器的主机名或 IP 地址(默认:localhost)
  • port: 端口号(默认:8080)

身份验证

Signal 服务支持多种身份验证方法:

  • user: HTTP 基本身份验证的用户名(可选)
  • password: HTTP 基本身份验证的密码(可选)
  • tokenapikey: Bearer 身份验证的 API 令牌(可选)

身份验证优先级

如果同时提供了令牌和用户/密码,API 令牌优先并使用 Bearer 身份验证。这对于 secured-signal-api 很有用,它更喜欢 Bearer 令牌。

源电话号码

source_phone 是您的 Signal 电话号码,带有国家代码(例如,+1234567890),该号码已在 API 服务器上注册。

收件人

收件人可以是:

  • 电话号码: 带有国家代码(例如,+0987654321)
  • 群组 ID: 格式为 group.groupId

TLS 配置

  • 使用 signal:// 进行 HTTPS(默认,推荐)
  • 使用 signal://...?disabletls=yes 进行 HTTP(不安全,仅用于本地测试)

示例

发送到单个电话号码

signal://localhost:8080/+1234567890/+0987654321

发送到多个收件人

signal://localhost:8080/+1234567890/+0987654321/+1123456789/group.testgroup

发送到群组

signal://localhost:8080/+1234567890/group.abcdefghijklmnop=

带身份验证

signal://user:password@localhost:8080/+1234567890/+0987654321

带 API 令牌(Bearer 身份验证)

signal://localhost:8080/+1234567890/+0987654321?token=YOUR_API_TOKEN

使用 HTTP 而不是 HTTPS

signal://localhost:8080/+1234567890/+0987654321?disabletls=yes

可选参数

您可以在 URL 查询字符串中指定其他参数:

  • disabletls=yes: 强制使用 HTTP 而不是 HTTPS(与使用 signals:// 相同)

实现说明

Signal 服务使用 HTTP POST 请求向 API 服务器的发送端点发送消息,其中包含消息、源号码和收件人列表的 JSON 有效负载。服务器处理实际的 Signal 协议通信。

基于 MIT 许可发布