目录

「信达」支持上行下行的双向消息推送服务

快速开始

注册及关注微信服务号

首先,你需要注册一个账号,从而获取secretkey。这是调用信达API的鉴权方式。

https://sender.xzhsh.ch/signup

关注公众号并取得Secretkey。

https://file.xzhshch.com/uPic/2021-05-09-19-27-55_%E6%9C%AA%E5%91%BD%E5%90%8D.png

接收通知

调用下面的接口即可通过公众号发送消息。接口参数和Server酱一样。

https://sender.xzhsh.ch/api/v1/notification?secretkey=<your_sk>&title=<title>&desc=<desc>

desc参数表示正文。支持使用markdown语法。在公众号消息卡片点击,能跳转到完整的消息内容页面。

发送「信令」

https://file.xzhshch.com/uPic/2021-05-10-08-12-05_r28Llf.jpg

在公众号消息框发送的消息(信令)会被信达服务器加入一个队列。等待Agent(接收消息的一侧)拉取。

除了使用公众号发送信令,也可以使用API。

[POST]https://sender.xzhsh.ch/api/v1/signaling?secretkey=<your_sk>&signaling=<signaling>

API与公众号发送的效果相同。

在Agent一侧调用这个API可以获取现有的信令。每隔一分钟轮询这个接口可以实时接收信令。

[GET]https://sender.xzhsh.ch/api/v1/signaling?secretkey=<your_sk>
{
    "code": 0,
    "msg": "ok",
    "res": [
        {
            "id": 4,
            "agent": "",
            "signaling": "hello",
            "status": "new",
            "created_at": 1620557824
        },
        {
            "id": 5,
            "agent": "",
            "signaling": "hi",
            "status": "new",
            "created_at": 1620560592
        }
    ]
}

Webhook

除了使用API轮询信令,还可以设置一个Webhook主动接收信令。

发送信令后webhook会收到这样的一个POST请求。

{
    "id": 5,
    "agent": "",
    "signaling": "hi",
    "status": "new",
    "created_at": 1620560592
}

Agent路由

通常情况下,人类只有一名,接收消息的Agent可能不止一个。不同的服务器或者不同服务器上的不同业务,都可能区分为不同的Agent。

于是,将信令发送给哪个Agent,即为Agent路由。

公众号发送消息时使用#AgentName Signaling的格式发送消息,即可确定一个Agent。(不需要提前创建Agent,新Agent自动创建)

相应的,API上也可以加入agent参数。

[POST]https://sender.xzhsh.ch/api/v1/signaling?secretkey=<your_sk>&agent=<agent>&signaling=<signaling>
[GET]https://sender.xzhsh.ch/api/v1/signaling?secretkey=<your_sk>&agent=<agent>

默认情况下不指定Agent,Agent视作为空「""」处理。

接收结果

信令通常代表的是需要执行的任务。

使用结果提交API向信达报告任务执行的结果,同时公众号也会推送结果通知。

[POST]https://sender.xzhsh.ch/api/v1/result?secretkey=<your_sk>&signaling=<signaling_id>

MultipartForm POST Body: result=<result>