{"id":20732394,"url":"https://github.com/jpush/jiguang-sdk-java","last_synced_at":"2026-01-05T11:21:52.537Z","repository":{"id":219045519,"uuid":"748022828","full_name":"jpush/jiguang-sdk-java","owner":"jpush","description":"这是 Jiguang REST API 的 Java 版本封装开发包，是由极光推送官方提供的，一般支持最新的 API 功能。","archived":false,"fork":false,"pushed_at":"2025-04-11T07:18:47.000Z","size":160,"stargazers_count":23,"open_issues_count":0,"forks_count":6,"subscribers_count":16,"default_branch":"main","last_synced_at":"2025-04-23T22:07:45.243Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jpush.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-25T05:27:21.000Z","updated_at":"2025-04-23T08:53:09.000Z","dependencies_parsed_at":"2024-02-05T04:30:40.476Z","dependency_job_id":"acd4884c-26ad-4b80-9d89-dc8e1e40ca70","html_url":"https://github.com/jpush/jiguang-sdk-java","commit_stats":null,"previous_names":["jpush/jiguang-sdk-java-v5","jpush/jiguang-sdk-java"],"tags_count":28,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jpush%2Fjiguang-sdk-java","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jpush%2Fjiguang-sdk-java/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jpush%2Fjiguang-sdk-java/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jpush%2Fjiguang-sdk-java/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jpush","download_url":"https://codeload.github.com/jpush/jiguang-sdk-java/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250522299,"owners_count":21444511,"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":[],"created_at":"2024-11-17T05:19:11.495Z","updated_at":"2026-01-05T11:21:52.519Z","avatar_url":"https://github.com/jpush.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# jiguang-sdk-java\n\n这是 Jiguang REST API 的 Java 版本封装开发包，是由极光推送官方提供的，一般支持最新的 API 功能。\n\n对应的 REST API 文档：\n* [REST API - Push](https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push)\n* [REST API - Device](https://docs.jiguang.cn/jpush/server/push/rest_api_v3_device)\n* [REST API - Report](https://docs.jiguang.cn/jpush/server/push/rest_api_v3_report)\n* [REST API - GroupPush](https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push_grouppush)\n\n支持 Java JDK 1.8 及其以上版本。\n\u003e 支持 Java JDK 1.6 版本：[jpush-api-java-client](https://github.com/jpush/jpush-api-java-client)，但不再更新。\n\n## 1. 集成\n引入sdk包\n```xml\n\u003c!--以5.3.0版本为例--\u003e\n\u003cdependencies\u003e\n        \u003c!-- jiguang-sdk --\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003eio.github.jpush\u003c/groupId\u003e\n            \u003cartifactId\u003ejiguang-sdk\u003c/artifactId\u003e\n            \u003cversion\u003e5.3.0\u003c/version\u003e\n        \u003c/dependency\u003e\n\u003c/dependencies\u003e\n```\n引入log包\n\u003e 注意项目中已引用了logback、log4j、commons-logging等实现slfj接口的日志框架，则不需要配置。例如'example-for-spring'中引入了spring，自带logback框架，就不需要再配置。\n```xml\n\u003c!--以logback为例--\u003e\n\u003cdependencies\u003e\n    \u003c!-- logback --\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003ech.qos.logback\u003c/groupId\u003e\n        \u003cartifactId\u003elogback-classic\u003c/artifactId\u003e\n        \u003cversion\u003e1.2.11\u003c/version\u003e\n    \u003c/dependency\u003e\n\u003c/dependencies\u003e\n```\n\n## 2. Api\n创建api对象\n\u003e 可根据自身情况设置client、host和loggerLevel\n```java\n        // appKey和masterSecret在极光官网-应用控制台获取\n        PushApi pushApi = new PushApi.Builder()\n            .setAppKey(appKey)\n            .setMasterSecret(masterSecret)\n            .build();\n\n        DeviceApi deviceApi = new DeviceApi.Builder()\n            .setAppKey(appKey)\n            .setMasterSecret(masterSecret)\n            .build();\n\n        ReportApi reportApi = new ReportApi.Builder()\n            .setAppKey(appKey)\n            .setMasterSecret(masterSecret)\n            .build();\n\n        // groupKey和groupMasterSecret在极光官网-分组应用控制台获取\n        GroupPushApi groupPushApi = new GroupPushApi.Builder()\n            .setGroupKey(groupKey)\n            .setGroupMasterSecret(groupMasterSecret)\n            .build();\n        \n        \n        // 其他可自定义演示\n        okhttp3.OkHttpClient okHttpClient = new okhttp3.OkHttpClient().newBuilder()\n                // .proxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress(\"proxy_host\", proxy_port))) // 可自定义代理，可选\n                .build();\n\n        PushApi pushApi = new PushApi.Builder()\n                .setClient(new OkHttpClient(okHttpClient)) // sdk默认使用的feign-okhttp，可自定义，可选\n                .setOptions(new Request.Options(10, TimeUnit.SECONDS, 10, TimeUnit.SECONDS, false)) // 可自定义超时参数，可选\n                .setRetryer(new Retryer.Default(10, 10, 10)) // 可自定义重试参数，可选\n                .setLoggerLevel(Logger.Level.FULL) // 可自定义日志打印级别，可选\n                .setAppKey(appKey) // 必填\n                .setMasterSecret(masterSecret) // 必填\n                .build();\n```\n使用api示例\n* [PushApi](https://github.com/jpush/jiguang-sdk-java/blob/main/example-for-spring/src/test/java/cn/jiguang/app/api/PushApiTest.java)\n* [DeviceApi](https://github.com/jpush/jiguang-sdk-java/blob/main/example-for-spring/src/test/java/cn/jiguang/app/api/DeviceApiTest.java)\n* [ReportApi](https://github.com/jpush/jiguang-sdk-java/blob/main/example-for-spring/src/test/java/cn/jiguang/app/api/ReportApiTest.java)\n* [GroupPushApi](https://github.com/jpush/jiguang-sdk-java/blob/main/example-for-spring/src/test/java/cn/jiguang/app/api/GroupPushApiTest.java)\n\n## 3. 异常处理与限流信息\n\n### 异常处理\nAPI 调用失败会抛出 `ApiErrorException`，可通过异常对象获取错误信息和限流信息：\n\n```java\ntry {\n    PushSendResult result = pushApi.send(param);\n    log.info(\"send success:{}\", result);\n} catch (ApiErrorException e) {\n    // 错误信息\n    int httpStatus = e.getStats();                                  // HTTP状态码\n    int errorCode = e.getApiError().getError().getCode();           // 错误码\n    String errorMessage = e.getApiError().getError().getMessage();  // 错误信息\n    log.error(\"send error, code:{}, message:{}\", errorCode, errorMessage);\n}\n```\n\n### 限流信息\n所有 Result 对象和 ApiErrorException 异常都包含限流信息，可通过 `getRateLimit()` 方法获取：\n\n```java\nRateLimit rateLimit = result.getRateLimit();  // 或 e.getRateLimit()\nInteger limit = rateLimit.getLimit();         // 单位时间内最大请求次数\nInteger remaining = rateLimit.getRemaining(); // 单位时间内剩余请求次数\nInteger reset = rateLimit.getReset();         // 限流重置时间(秒)\n```\n\n### 日志配置\n```yaml\n# 配置中打开feign-debug日志打印\nlogging:\n  level:\n    feign.Logger: debug\n```\n* 排查问题，请务必`setLoggerLevel(Logger.Level.FULL)`，查看feign日志\n  \u003e 打印类为feign.Logger，从---\u003e POST，到\u003c--- END HTTP，参考下图\n* 如需技术支持，请提供使用环境、复现步骤、示例代码、日志信息\n\u003cimg width=\"1184\" height=\"658\" alt=\"image\" src=\"https://github.com/user-attachments/assets/33d943b8-f0df-4c11-8bde-6c17cf93dcb9\" /\u003e\n\n## 4. 第三方库引用说明\n```\n    \u003cproperties\u003e\n        \u003cokhttp.version\u003e4.12.0\u003c/okhttp.version\u003e\n        \u003clombok.version\u003e1.18.30\u003c/lombok.version\u003e\n        \u003cfeign-core.version\u003e13.1\u003c/feign-core.version\u003e\n        \u003cfeign-form.version\u003e3.8.0\u003c/feign-form.version\u003e\n        \u003cjackson-datatype-jsr310.version\u003e2.15.3\u003c/jackson-datatype-jsr310.version\u003e\n    \u003c/properties\u003e\n\n    \u003cdependencies\u003e\n        \u003c!-- lombok 打印日志用，需要额外引用实现slfj接口的日志框架，如log4j--\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003eorg.projectlombok\u003c/groupId\u003e\n            \u003cartifactId\u003elombok\u003c/artifactId\u003e\n            \u003cversion\u003e${lombok.version}\u003c/version\u003e\n            \u003cscope\u003eprovided\u003c/scope\u003e\n        \u003c/dependency\u003e\n        \u003c!-- feign 网络请求用--\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003eio.github.openfeign\u003c/groupId\u003e\n            \u003cartifactId\u003efeign-core\u003c/artifactId\u003e\n            \u003cversion\u003e${feign-core.version}\u003c/version\u003e\n        \u003c/dependency\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003eio.github.openfeign.form\u003c/groupId\u003e\n            \u003cartifactId\u003efeign-form\u003c/artifactId\u003e\n            \u003cversion\u003e${feign-form.version}\u003c/version\u003e\n        \u003c/dependency\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003eio.github.openfeign\u003c/groupId\u003e\n            \u003cartifactId\u003efeign-slf4j\u003c/artifactId\u003e\n            \u003cversion\u003e${feign-core.version}\u003c/version\u003e\n        \u003c/dependency\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003eio.github.openfeign\u003c/groupId\u003e\n            \u003cartifactId\u003efeign-okhttp\u003c/artifactId\u003e\n            \u003cversion\u003e${feign-core.version}\u003c/version\u003e\n        \u003c/dependency\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003eio.github.openfeign\u003c/groupId\u003e\n            \u003cartifactId\u003efeign-jackson\u003c/artifactId\u003e\n            \u003cversion\u003e${feign-core.version}\u003c/version\u003e\n        \u003c/dependency\u003e\n        \u003c!-- okhttp 配合feign网络请求用--\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003ecom.squareup.okhttp3\u003c/groupId\u003e\n            \u003cartifactId\u003eokhttp\u003c/artifactId\u003e\n            \u003cversion\u003e${okhttp.version}\u003c/version\u003e\n        \u003c/dependency\u003e\n        \u003c!-- jackson-datatype 配合feign网络请求用--\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003ecom.fasterxml.jackson.datatype\u003c/groupId\u003e\n            \u003cartifactId\u003ejackson-datatype-jsr310\u003c/artifactId\u003e\n            \u003cversion\u003e${jackson-datatype-jsr310.version}\u003c/version\u003e\n        \u003c/dependency\u003e\n        \u003c!-- SM2 国密加密用--\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003eorg.bouncycastle\u003c/groupId\u003e\n            \u003cartifactId\u003ebcpkix-jdk15on\u003c/artifactId\u003e\n            \u003cversion\u003e1.68\u003c/version\u003e\n        \u003c/dependency\u003e\n    \u003c/dependencies\u003e\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjpush%2Fjiguang-sdk-java","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjpush%2Fjiguang-sdk-java","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjpush%2Fjiguang-sdk-java/lists"}