消息推送

详细的 API 文档

1. 推送消息

你可以向某个人或者一些人发送消息。

准备工作

首先你需要用手机注册一个号码,并用微信或其它二维码工具扫描号码芯片,获得号码芯片的完整信息,它长这样:

123123111222-16a2a853c77702f0947244f7a08c0e3482158f3b2dbfc17ba

发送消息

以下操作以 curl 为例,你也可以使用 PHP、Java 等其它工具。

发送消息给两个号码 1230012300112300123002,消息内容为 "hello world",长度 length = 11。

消息用 POST 发送,body 部分由两个部分组成:<json_data>\0<bin_data>

printf '{"req":"sends","uuid":"123123111222-16a2a853c77702f0947244f7a08c0e3482158f3b2dbfc17ba","callees":["12300123001","12300123002"],"caller_name":"test","length":11}\0hello world' | \
curl -X POST https://www.9000090000.com/cc/message.php  --data-binary @-

2. 接收消息

这个程序需要在 Web 服务器上运行。

准备接收页面

准备一个接收推送消息的网页,例如:

https://www.xx.com/new_message.php

当你的号码接收到消息时,上面这个网页将收到 JSON 格式的 POST 消息:

{
    "notification": {
        "title": "...",
        "body": "..."
    },
    "data": {
        "fid": "message",
        "caller": "21321312321",
        "callee": "123123111222"
    }
}

登录设置 Token

至少登录一次,设置自己的 token。不需要经常登录。

printf '{"req":"login","uuid":["123123111222-16a2a853c77702f0947244f7a08c0e3482158f3b2dbfc17ba"],"appid":"test","build":100,"name":"myname","locale":"zh","token":"web|https://www.xx.com/new_message.php"}' | \
curl -X POST https://www.9000090000.com/cc/login.php  --data-binary @-

服务器响应:

{
    "answer": 10000,
    "error_uuid": ["<无效的uuid>", ...]
}
注意:上面接收到的消息可能是不完整的,例如消息字太多。如果是图片,它仅显示"图片"字样。

索取新消息列表

接收到上面的消息后,可以向服务器索取新消息列表:

printf '{"req":"get","uuid":["123123111222-16a2a853c77702f0947244f7a08c0e3482158f3b2dbfc17ba"]}' | \
curl -X POST https://www.9000090000.com/cc/message.php  --data-binary @-

服务器响应是消息列表:

{
    "answer": 10000,
    "error_uuid": ["<无效uuid>", ...],
    "message": [
        {
            "msgid": 128,
            "callee": "123123111222",
            "caller": "123456789",
            "caller_name": "发送方名",
            "uri": "/data/128.a1b2c3d4.txt",
            "length": 1024,
            "ctime": 1716900000
        },
        {
            "msgid": 133,
            "callee": "123123111222",
            "caller": "123456789",
            "caller_name": "发送方名",
            "fname": "hello.png",
            "uri": "/data/133.a1b563d4.png",
            "length": 102423,
            "ctime": 1716903400
        }
    ]
}

获取文件内容

你可以使用 GET 请求获取 uri 指向的文件内容:

GET https://www.9000090000.com/data/128.a1b2c3d4.txt
GET https://www.9000090000.com/data/133.a1b563d4.png