NotifyX 开发者帮助中心

消息推送平台使用指南和API文档

快速入门指南

欢迎使用 NotifyX 消息推送平台

NotifyX 是一个多通道消息推送平台,支持企业微信、邮件、钉钉、飞书等多种通知渠道,让您的消息推送更加灵活和高效。

基本使用流程

  1. 登录平台并创建通道配置
  2. 生成API密钥
  3. 使用API密钥发送消息

完整的API文档和各通道配置文档请查看下方对应章节的详细说明。

API 使用文档

发送消息 API

接口地址:

POST https://www.notifyx.cn/api/v1/send/:key

请求参数:

参数名类型必填最大长度说明
titlestring100字符消息标题
contentstring2000字符消息内容,支持Markdown格式
descriptionstring500字符消息简介,用于在通知中展示
teamstring32字符群组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密钥仅在创建时显示一次,请及时保存。

创建和管理密钥

  1. 登录到码达(NotifyX)控制台
  2. 进入【密钥配置】页面
  3. 点击【创建新KEY】按钮
  4. 填写密钥名称,选择关联的通道,设置有效期
  5. 点击确认创建,系统将生成并显示API密钥
  6. 复制并安全保存该密钥,它只会显示一次

密钥安全最佳实践

  • 为不同的应用或服务创建单独的密钥,方便管理和追踪
  • 定期轮换密钥,特别是在人员变动后
  • 设置合理的有效期,避免长期有效的密钥带来的安全风险
  • 密钥只在需要的系统中使用,避免在公共场所或不安全的系统中使用
  • 如果怀疑密钥泄露,立即删除并创建新的密钥

通道配置指南

支持的通道类型

微信公众号

微信公众号

通过微信公众号模板消息发送通知。

配置说明:

微信公众号通道由系统全局配置,用户只需绑定微信即可接收消息。

企业微信应用

企业微信应用

通过企业微信应用向企业成员发送消息通知。

配置所需信息:

  • 企业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推送

通过NotifyMe APP推送消息到移动设备。

配置说明:

用户需在NotifyMe APP中配置消息通道,并获取Token,然后填入NotifyMe推送通道的配置中。

通道配置最佳实践

  • 根据接收对象的使用习惯选择合适的通道
  • 对于重要通知,建议配置多个通道作为备份
  • 定期测试通道连通性,确保消息能及时送达
  • 妥善保管各通道的敏感配置信息
  • 使用企业级通道时,合理控制接收范围,避免打扰不相关人员