The Node.js sdk for Getui, based on rest api
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
test
.editorconfig
.gitignore
.npmignore
.travis.yml
LICENSE
Readme.md
package.json
tsconfig.json
tslint.json
yarn.lock

Readme.md

Getui Rest SDK

Build Status npm version Dependency Status npm Greenkeeper badge

Getting Started

详细原接口文档:http://docs.getui.com/server/rest/start/

除了原文档中的接口,其中另外还提供了 pushMessageByTag 方法,可以用来发送按 tag 或者说按 topic 方式推送数据。

Installing

npm i getui-rest-sdk --save

建议使用 vscode 开发,typing 代码提示更加完善

Usage

以下样例均使用 TypeScript 展示,可轻易修改为 ES6

初始化
const option: GetuiOption = {
  appId: APP_ID,
  appSecret: APP_SECRET,
  appKey: APP_KEY,
  masterSecret: MASTER_SECRET,
};

const gt = new Getui(option);
初始化透传模板
const alert = new Alert();
alert.title = 'Title: push test';
alert.body = `Body: push test`;

const payload = JSON.stringify({
  message: `Payload message: push message test`,
});

const apnsInfo = new ApnsInfo();
apnsInfo.alert = alert;
apnsInfo.customMsg = { payload };

const template = new TransmissionTemplate();
template.transmissionContent = payload;
单个推送
const message = new SingleMessage();
message.template = template;
message.apnsInfo = apnsInfo;

const target = <Target>{
  cid: GETUI_CID,
};

const ret = await gt.pushMessageToSingle(message, target);
APP推送
const message = new AppMessage();
message.template = template;
message.apnsInfo = apnsInfo;
message.conditions = [
  new Condition(ConditionKey.TAG, [testTag], CondOptType.OR),
  new Condition(ConditionKey.Region, [Region.北京市], CondOptType.OR),
  new Condition(ConditionKey.PHONE_TYPE, [PhoneType.IOS], CondOptType.OR),
];

const ret = await gt.pushMessageToApp(message)
按 tag 推送
const message = new TagMessage();
message.template = template;
message.apnsInfo = apnsInfo;
message.tag = testTag;

const ret = await gt.pushMessageByTag(message);

更多样例,请见测试代码

Test

测试基于 nock 来模拟服务器,但是你可以设置环境变量与真实个推服务器测试进行交互,以下测试账号数据需要用你自己的

export GETUI_APP_ID=<app id>
export GETUI_APP_SECRET=<app secret>
export GETUI_APP_KEY=<app key>
export GETUI_MASTER_SECRET=<master secret>
export GETUI_CID=<cid>
export GETUI_TEST_TAG=<tag>

export GETUI_TEST_USE_REAL_CONNECTION=true

export DEBUG=getui

npm test

TODO

  • 测试代码完善

License

This project is licensed under the MIT License - see the LICENSE file for details