文档目录
快速入门指南
欢迎使用 NotifyX 消息推送平台
NotifyX 是一个多通道消息推送平台,支持企业微信、邮件、钉钉、飞书等多种通知渠道,让您的消息推送更加灵活和高效。
基本使用流程
- 登录平台并创建通道配置
- 生成API密钥
- 使用API密钥发送消息
完整的API文档和各通道配置文档请查看下方对应章节的详细说明。
API 使用文档
发送消息 API
接口地址:
POST https://www.notifyx.cn/api/v1/send/:key请求参数:
| 参数名 | 类型 | 必填 | 最大长度 | 说明 |
|---|---|---|---|---|
| title | string | 是 | 100字符 | 消息标题 |
| content | string | 是 | 2000字符 | 消息内容,支持Markdown格式 |
| description | string | 否 | 500字符 | 消息简介,用于在通知中展示 |
| team | string | 否 | 32字符 | 群组ID,用于将消息推送到指定群组 |
响应示例:
{
"id":1743064120638044200,
"message":"消息已加入队列",
"status":"queued"
}代码示例:
cURL:
curl -X POST "https://www.notifyx.cn/api/v1/send/your-api-key" \
-H "Content-Type: application/json" \
-d '{
"title": "测试消息",
"content": "这是一条测试消息内容",
"description": "简短的消息描述",
"team": "1234567890"
}'JavaScript:
fetch('https://www.notifyx.cn/api/v1/send/your-api-key', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
title: '测试消息',
content: '这是一条测试消息内容',
description: '简短的消息描述',
team: '1234567890'
})
})
.then(response => response.json())
.then(data => console.log(data));Python:
import requests
import json
url = "https://www.notifyx.cn/api/v1/send/your-api-key"
payload = {
"title": "测试消息",
"content": "这是一条测试消息内容",
"description": "简短的消息描述",
"team": "1234567890"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, data=json.dumps(payload), headers=headers)
print(response.json())PHP:
<?php
$url = 'https://www.notifyx.cn/api/v1/send/your-api-key';
$data = array(
'title' => '测试消息',
'content' => '这是一条测试消息内容',
'description' => '简短的消息描述',
'team' => '1234567890'
);
$options = array(
'http' => array(
'header' => "Content-type: application/json\r\n",
'method' => 'POST',
'content' => json_encode($data)
)
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
echo $result;
?>Java:
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SendMessage {
public static void main(String[] args) {
try {
String url = "https://www.notifyx.cn/api/v1/send/your-api-key";
String jsonBody = "{\"title\":\"测试消息\",\"content\":\"这是一条测试消息内容\",\"description\":\"简短的消息描述\",\"team\":\"1234567890\"}";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(jsonBody))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
} catch (Exception e) {
e.printStackTrace();
}
}
}Golang:
package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
)
func main() {
url := "https://www.notifyx.cn/api/v1/send/your-api-key"
message := map[string]string{
"title": "测试消息",
"content": "这是一条测试消息内容",
"description": "简短的消息描述",
"team": "1234567890"
}
jsonData, _ := json.Marshal(message)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
var result map[string]interface{}
json.NewDecoder(resp.Body).Decode(&result)
fmt.Println(result)
}C# (.NET):
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using System.Text.Json;
class Program
{
static async Task Main()
{
using (var client = new HttpClient())
{
var url = "https://www.notifyx.cn/api/v1/send/your-api-key";
var message = new
{
title = "测试消息",
content = "这是一条测试消息内容",
description = "简短的消息描述",
team = "1234567890"
};
var json = JsonSerializer.Serialize(message);
var content = new StringContent(json, Encoding.UTF8, "application/json");
var response = await client.PostAsync(url, content);
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
}
}GET方式示例(适用于简单请求):
注意:GET请求参数会显示在URL中,建议仅用于简单请求或测试。生产环境中的敏感数据请使用POST方式发送。
// URL编码参数示例
https://www.notifyx.cn/api/v1/send/your-api-key?title=测试消息&content=这是一条测试消息内容&description=简短的消息描述
// JavaScript GET方式调用示例
fetch('https://www.notifyx.cn/api/v1/send/your-api-key?title=测试消息&content=这是一条测试消息内容&description=简短的消息描述')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
// Python GET方式调用示例
import requests
params = {
"title": "测试消息",
"content": "这是一条测试消息内容",
"description": "简短的消息描述",
"team": "1234567890"
}
response = requests.get("https://www.notifyx.cn/api/v1/send/your-api-key", params=params)
print(response.json())API密钥管理
什么是API密钥?
API密钥是调用NotifyX消息推送API的凭证,每个密钥关联一个特定的通道,用于发送消息。
请妥善保管您的API密钥,密钥泄露可能导致安全风险。API密钥仅在创建时显示一次,请及时保存。
创建和管理密钥
- 登录到码达(NotifyX)控制台
- 进入【密钥配置】页面
- 点击【创建新KEY】按钮
- 填写密钥名称,选择关联的通道,设置有效期
- 点击确认创建,系统将生成并显示API密钥
- 复制并安全保存该密钥,它只会显示一次
密钥安全最佳实践
- 为不同的应用或服务创建单独的密钥,方便管理和追踪
- 定期轮换密钥,特别是在人员变动后
- 设置合理的有效期,避免长期有效的密钥带来的安全风险
- 密钥只在需要的系统中使用,避免在公共场所或不安全的系统中使用
- 如果怀疑密钥泄露,立即删除并创建新的密钥
通道配置指南
支持的通道类型
微信公众号
通过微信公众号模板消息发送通知。
配置说明:
微信公众号通道由系统全局配置,用户只需绑定微信即可接收消息。
企业微信应用
通过企业微信应用向企业成员发送消息通知。
配置所需信息:
- 企业ID (corpid)
- 应用ID (agentid)
- 应用Secret (secret)
邮件通知
通过SMTP发送邮件通知,支持HTML内容。
配置所需信息:
- SMTP服务器地址
- SMTP端口
- 邮箱用户名
- 邮箱密码或授权码
钉钉机器人
通过钉钉群机器人发送消息通知。
配置所需信息:
- Webhook URL
- 安全设置(系统默认使用"NotifyX"关键词)
企业微信机器人
通过企业微信群机器人发送消息通知。
配置所需信息:
- Webhook URL
飞书机器人
通过飞书群机器人发送消息通知。
配置所需信息:
- Webhook URL
- 安全设置(系统默认使用"NotifyX"关键词)
公众号测试号
通过公众号测试号发送消息通知。
配置说明:
1. 访问微信公众平台接口测试账号
2. 使用微信扫码登录获取测试号信息
3. 在测试号管理页面获取AppID和AppSecret
4. 关注测试号获取用户OpenID
5. 添加模板消息模板获取TemplateID,模板内容为:
标题:{{title.DATA}}
描述:{{description.DATA}}
内容:{{content.DATA}}
NotifyMe推送
通过NotifyMe APP推送消息到移动设备。
配置说明:
用户需在NotifyMe APP中配置消息通道,并获取Token,然后填入NotifyMe推送通道的配置中。
通道配置最佳实践
- 根据接收对象的使用习惯选择合适的通道
- 对于重要通知,建议配置多个通道作为备份
- 定期测试通道连通性,确保消息能及时送达
- 妥善保管各通道的敏感配置信息
- 使用企业级通道时,合理控制接收范围,避免打扰不相关人员