{"id":25426862,"url":"https://github.com/xizhibei/getui-rest-sdk","last_synced_at":"2025-10-31T16:30:43.512Z","repository":{"id":27903028,"uuid":"114892092","full_name":"xizhibei/getui-rest-sdk","owner":"xizhibei","description":"The Node.js sdk for Getui, based on rest api","archived":false,"fork":false,"pushed_at":"2023-01-03T21:47:41.000Z","size":456,"stargazers_count":5,"open_issues_count":13,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-12T22:37:42.189Z","etag":null,"topics":["getui","getui-nodejs","getui-rest-sdk","getui-sdk","message","node-js","nodejs","nodejs-modules","push-notifications","rest-api","sdk","sdk-nodejs","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xizhibei.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-12-20T13:46:02.000Z","updated_at":"2023-01-14T03:46:25.000Z","dependencies_parsed_at":"2023-01-14T07:42:33.702Z","dependency_job_id":null,"html_url":"https://github.com/xizhibei/getui-rest-sdk","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xizhibei%2Fgetui-rest-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xizhibei%2Fgetui-rest-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xizhibei%2Fgetui-rest-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xizhibei%2Fgetui-rest-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xizhibei","download_url":"https://codeload.github.com/xizhibei/getui-rest-sdk/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239217109,"owners_count":19601593,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["getui","getui-nodejs","getui-rest-sdk","getui-sdk","message","node-js","nodejs","nodejs-modules","push-notifications","rest-api","sdk","sdk-nodejs","typescript"],"created_at":"2025-02-17T00:39:57.490Z","updated_at":"2025-10-31T16:30:43.441Z","avatar_url":"https://github.com/xizhibei.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Getui Rest SDK\n\n![Build Status](https://github.com/xizhibei/getui-rest-sdk/workflows/Node%20CI/badge.svg)\n[![npm version](https://badge.fury.io/js/getui-rest-sdk.svg?style=flat)](http://badge.fury.io/js/getui-rest-sdk)\n[![Dependency Status](https://img.shields.io/david/xizhibei/getui-rest-sdk.svg?style=flat)](https://david-dm.org/xizhibei/getui-rest-sdk)\n[![npm](https://img.shields.io/npm/l/getui-rest-sdk.svg)](https://github.com/xizhibei/getui-rest-sdk/blob/master/LICENSE)\n[![Greenkeeper badge](https://badges.greenkeeper.io/xizhibei/getui-rest-sdk.svg)](https://greenkeeper.io/)\n\n### Getting Started\n\n详细原接口文档：http://docs.getui.com/server/rest/start/\n\n\u003e 除了原文档中的接口，其中另外还提供了 `pushMessageByTag` 方法，可以用来发送按 tag 或者说按 topic 方式推送数据。\n\n### Installing\n\n```bash\nnpm i @xizhibei/getui-rest-sdk --save\n```\n\n建议使用 vscode 开发，typing 代码提示更加完善\n\n### Usage\n\n以下样例均使用 TypeScript 展示，可轻易修改为 ES6\n\n##### 初始化\n\n```ts\nconst option: GetuiOption = {\n  appId: APP_ID,\n  appSecret: APP_SECRET,\n  appKey: APP_KEY,\n  masterSecret: MASTER_SECRET,\n};\n\nconst gt = new Getui(option);\n```\n\n##### 初始化透传模板\n\n```ts\nconst alert = new Alert();\nalert.title = 'Title: push test';\nalert.body = `Body: push test`;\n\nconst payload = JSON.stringify({\n  message: `Payload message: push message test`,\n});\n\nconst apnsInfo = new ApnsInfo();\napnsInfo.alert = alert;\napnsInfo.customMsg = { payload };\n\nconst template = new TransmissionTemplate();\ntemplate.transmissionContent = payload;\n```\n\n##### 单个推送\n\n```ts\nconst message = new SingleMessage();\nmessage.template = template;\nmessage.apnsInfo = apnsInfo;\n\nconst target = \u003cTarget\u003e{\n  cid: GETUI_CID,\n};\n\nconst ret = await gt.pushMessageToSingle(message, target);\n```\n\n##### APP推送\n\n```ts\nconst message = new AppMessage();\nmessage.template = template;\nmessage.apnsInfo = apnsInfo;\nmessage.conditions = [\n  new Condition(ConditionKey.TAG, [testTag], CondOptType.OR),\n  new Condition(ConditionKey.Region, [Region.北京市], CondOptType.OR),\n  new Condition(ConditionKey.PHONE_TYPE, [PhoneType.IOS], CondOptType.OR),\n];\n\nconst ret = await gt.pushMessageToApp(message)\n```\n\n##### 按 tag 推送\n\n```ts\nconst message = new TagMessage();\nmessage.template = template;\nmessage.apnsInfo = apnsInfo;\nmessage.tag = testTag;\n\nconst ret = await gt.pushMessageByTag(message);\n```\n\n更多样例，请见测试代码\n\n### Test\n\n测试基于 nock 来模拟服务器，但是你可以设置环境变量与真实个推服务器测试进行交互，以下测试账号数据需要用你自己的\n\n```bash\nexport GETUI_APP_ID=\u003capp id\u003e\nexport GETUI_APP_SECRET=\u003capp secret\u003e\nexport GETUI_APP_KEY=\u003capp key\u003e\nexport GETUI_MASTER_SECRET=\u003cmaster secret\u003e\nexport GETUI_CID=\u003ccid\u003e\nexport GETUI_TEST_TAG=\u003ctag\u003e\n\nexport GETUI_TEST_USE_REAL_CONNECTION=true\n\nexport DEBUG=getui\n\nnpm test\n```\n\n### TODO\n- 测试代码完善\n\n### License\nThis project is licensed under the MIT License - see the LICENSE file for details\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxizhibei%2Fgetui-rest-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxizhibei%2Fgetui-rest-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxizhibei%2Fgetui-rest-sdk/lists"}