百度云推送nodejs sdk

2015年12月29日 · 474 字 · 3 分钟

项目地址

bpush-nodejs

开发背景

百度官方只有php和java的sdk,但是百度提供了rest api,好处就是开发者可以使用任何语言开发一套服务端SDK,本人开源一套基于nodejs的sdk。

使用

npm install bpush-nodejs --save
var bpush = require('bpush-nodejs');

说明

SDK采用Promise方式进行回调,demo代码如下(以推送单个设备为例),catch代码块中 只捕获HTTP请求错误,如果HTTP请求成功,但是百度服务端报错,请自行在then中处理

var data = {
    channel_id: '5247517738736986629',
    msg: JSON.stringify({
        aps: {
            alert: '你是呵呵SINGLE'
        }
    }),
    msg_type: bpush.constant.MSG_TYPE.NOTIFICATION,
    deploy_status: bpush.constant.DEPLOY_STATUS.DEVELOPMENT,
    device_type: bpush.constant.DEVICE_TYPE.IOS
};
bpush.sendRequest(bpush.apis.pushMsgToSingleDevice, data).then(function (data) {
            data = JSON.parse(data);
            console.log(data);
        }).catch(function(e){
            console.error(e);
        });

所有api调用方法均为 bpush.sendRequest(bpush.apis.[api名称], [api需要的数据])

api列表

百度官方文档
特别说明: 本文档写作时,百度api返回的数据以本文档为准,与官方文档有出入的地方可能是百度升级了api忘记更新文档所致.

  • pushSingleDevice
    功能:推送单一终端
    请求参数:
var data = {
    channel_id: '5247517738736986629',//设备channelID
    msg: JSON.stringify({
        aps: {
        alert: '你是呵呵SINGLE'
        }
    }),
    msg_type: bpush.constant.MSG_TYPE.NOTIFICATION,
    deploy_status: bpush.constant.DEPLOY_STATUS.DEVELOPMENT,
    device_type: bpush.constant.DEVICE_TYPE.IOS
};

返回参数:

{
    request_id: 900279880,
    response_params: {
        msg_id: '7960733379606623036',
        send_time: 1451380442
    }
}
  • pushMsgToAll
    功能:推送所有终端
    请求参数:
var data = {
    msg: JSON.stringify({
        aps: {
            alert: '你是呵呵ALL'
        }
    }),
    msg_type: bpush.constant.MSG_TYPE.NOTIFICATION,
    deploy_status: bpush.constant.DEPLOY_STATUS.DEVELOPMENT,
    device_type: bpush.constant.DEVICE_TYPE.IOS
};

返回参数:

{
    request_id: 900279880,
    response_params: {
        msg_id: '7960733379606623036',
        send_time: 1451380442
    }
}
  • pushMsgToTag
    功能:组播推送
    请求参数:
var data = {
    msg: JSON.stringify({
    aps: {
            alert: '你是呵呵TAG'
        }
    }),
    type: 1,//固定为1
    tag: 'test',//标签名称
    msg_type: bpush.constant.MSG_TYPE.NOTIFICATION,
    deploy_status: bpush.constant.DEPLOY_STATUS.DEVELOPMENT,
    device_type: bpush.constant.DEVICE_TYPE.IOS
};

返回参数:

{
    request_id: 900279880,
    response_params: {
        msg_id: '7960733379606623036',
        send_time: 1451380442
    }
}
  • queryMsgStatus
    功能:查询消息推送情况
    请求参数:
var data = {
    msg_id: '3129074535657443828'
};

返回结果:

{
    "request_id": 1221365722,
    "response_params": {
        "total_num": 1,
        "result": [
            {
                "send_time": 1451381279,
                "success": -1,
                "total_num": 4,
                "status": 0,
                "msg_id": "3129074535657443828"
            }
        ]
    }
}
  • queryTags
    功能:查询标签组列表
    请求参数:
var data = {
};

返回参数:

{
    "request_id": 896177143,
    "response_params": {
        "total_num": 4,
        "result": [
            {
                "tid": "1933949969962682514",
                "tag": "default",
                "info": "default",
                "type": 0,
                "create_time": 1447315802
            },
            {
                "tid": "73579040",
                "tag": "test20151112",
                "info": "test201511127237210",
                "type": 2,
                "create_time": 1447321138
            },
            {
                "tid": "77983912",
                "tag": "test",
                "info": "test7237210",
                "type": 2,
                "create_time": 1451376995
            },
            {
                "tid": "77986112",
                "tag": "testtag",
                "info": "testtag7237210",
                "type": 2,
                "create_time": 1451379084
            }
        ]
    }
}
  • createTag
    功能:创建标签组
    请求参数:
var data = {
    tag: 'testtag'
};

返回参数:

{
    "request_id": 1221802330,
    "response_params": {
        "tag": "testtag",
        "result": 0
    }
}
  • deleteTag
    功能:删除标签组
    请求参数:
var data = {
    tag: 'testtag'
};

返回参数:

{
    "request_id": 897517834,
    "response_params": {
        "tag": "testtag",
        "result": 0
    }
}
  • addDevicesToTag
    功能:添加设备到标签组
    请求参数:
var data = {
    tag: 'testtag',
    channel_ids: JSON.stringify([5247517738736986629])
};

返回参数:

{
    "request_id": 881162061,
    "response_params": {
        "result": [
            {
                "channel_id": "5247517738736987000",
                "result": 1
            }
        ]
    }
}
  • removeDevicesFromTag
    功能:将设备从标签组中移除
    请求参数:
var data = {
    tag: 'testtag',
    channel_ids: JSON.stringify([5247517738736986629])
};

返回参数:

{
    "request_id": 881521481,
    "response_params": {
        "result": [
            {
                "channel_id": "5247517738736987000",
                "result": 1
            }
        ]
    }
}
  • deviceNumInTag
    功能:查询标签组设备数量
    请求参数:
var data = {
    tag: 'testtag'
};

返回参数:

{
    "request_id": 882409689,
    "response_params": {
        "device_num": -1
    }
}
  • reportStaticDevice
    功能:当前应用的设备统计信息
    请求参数:
var data = {
};

返回参数:

{
    "request_id": 883742690,
    "response_params": {
        "result": {
            "1450713600": {
                "total_term": 2,
                "total_term_detail": {
                    "1450774800": 2
                },
                "new_term": 1,
                "new_term_detail": {
                    "1450774800": 1
                },
                "del_term": 0,
                "del_term_detail": []
            },
            "1450800000": {
                "total_term": 3,
                "total_term_detail": {
                    "1450868400": 3
                },
                "new_term": 1,
                "new_term_detail": {
                    "1450868400": 1
                },
                "del_term": 0,
                "del_term_detail": []
            },
            "1451232000": {
                "total_term": 4,
                "total_term_detail": {
                    "1451293200": 4
                },
                "new_term": 1,
                "new_term_detail": {
                    "1451293200": 1
                },
                "del_term": 0,
                "del_term_detail": []
            }
        },
        "total_num": 3
    }
}