全部产品

OpenAPI接入手册

更新时间:2020-03-31 12:06:48

1 环境配置

EMAS中心仓库: http://nexus-ce.emas-poc.com/

访问该maven仓库需要配置账号/密码,账号信息咨询EMAS环境管理员。

settings.xml配置示例:

  1. <servers>
  2. <server>
  3. <id>emas-public</id>
  4. <username>_EMAS_MAVEN_USERNAME_</username>
  5. <password>_EMAS_MAVEN_PASSWORD_</password>
  6. </server>
  7. </servers>
  8. <profiles>
  9. <profile>
  10. <id>emas</id>
  11. <repositories>
  12. <repository>
  13. <id>emas-public</id>
  14. <url>http://nexus-ce.emas-poc.com/repository/maven-public/</url>
  15. <releases>
  16. <enabled>true</enabled>
  17. </releases>
  18. <snapshots>
  19. <enabled>true</enabled>
  20. </snapshots>
  21. </repository>
  22. </repositories>
  23. </profile>
  24. </profiles>
  25. <activeProfiles>
  26. <activeProfile>emas</activeProfile>
  27. </activeProfiles>

2 SDK集成

  1. <dependency>
  2. <groupId>com.alibaba.emas</groupId>
  3. <artifactId>emas-openapi-sdk-push</artifactId>
  4. <version>1.0.1</version>
  5. </dependency>
SDK中的类 API(对应类中的方法) API功能描述
PushApi pushPost 推送消息

咨询EMAS环境管理员,获取OpenAPI配置信息:

属性 含义
endpoint 访问OpenAPI的网络入口url
accessKey 访问OpenAPI的密钥key
secret 访问OpenAPI的密钥secret

OpenAPI配置信息示例:

  1. accessKey: _EMAS_OPENAPI_ACCESS_KEY_
  2. secret: _EMAS_OPENAPI_ACCESS_SECRET_
  3. endpoint: http://_EMAS_OPENAPI_DOMAIN_:31080/agoo/v1

PushRequest对象属性的含义:

属性 含义
pushType 推送类型,可选通知或消息,默认为通知
sandbox 是否为开发环境(仅iOS通知有效)
actionType 后续操作类型,打开App/URL/Activity(iOS当前仅支持打开App)
sendType 发送类型,全推/按设备/按别名
targetDevices 目标设备列表,最多100个
targetAliases 目标别名列表,最多100个
badge 角标数(仅对iOS有效)
iconUrl 图标URL(仅对Android有效)
remindType 提醒方式:震动、声音、震动+声音、无提醒(仅对Android有效)
pictureResource 图片资源(仅对iOS有效)
soundResource 声音资源
silent 是否为静默通知
notificationChannel Android 8.0通知通道
extParams 自定义参数(最多5个,key最多20字符,value最多100字符)
expireTime 过期时间
channel 手动指定发送通道,不指定时自动选择通道,一般无需设置,仅对Android有效

3 Demo示例

  1. public void testPush() {
  2. String accessKey = "_EMAS_OPENAPI_ACCESS_KEY_";
  3. String secret = "_EMAS_OPENAPI_ACCESS_SECRET_";
  4. String endpoint = "_EMAS_OPENAPI_ENDPOINT_";
  5. PushApi api = new PushApi(accessKey, secret, endpoint);
  6. PushRequest request = new PushRequest();
  7. request.setAppKey("12345678");
  8. request.setTitle("title");
  9. request.setContent("content");
  10. request.setSendType(PushRequest.SendTypeEnum.ALIAS);
  11. request.setTargetAliases(Arrays.asList("alias1", "alias2"));
  12. request.setExpireTime(OffsetDateTime.now().plusDays(1)); // 设置过期时间
  13. try {
  14. PushWebResult result = api.pushPost(request); // 发起推送请求
  15. System.out.println("Push result: " + result);
  16. } catch (Exception e) {
  17. e.printStackTrace();
  18. }
  19. }

4 错误码

错误码 描述
119130 缺少AppKey参数
119131 缺少Title参数
119132 缺少Content参数
119134 缺少ActionTarget参数
119135 缺少SendType参数
119136 缺少TargetDevices参数
119137 缺少TargetAliases参数
119138 缺少ExpireTime参数
119139 缺少Sandbox参数
119150 Title长度超出限制
119151 SubTitle长度超出限制
119152 Content长度超出限制
119153 ActionTarget长度超出限制
119154 IconUrl长度超出限制
119155 PictureResource长度超出限制
119156 SoundResource长度超出限制
119157 NotificationChannel长度超出限制
119158 ExtParams key长度超出限制
119159 ExtParams value长度超出限制
119160 TargetDevices列表个数超出限制
119161 TargetAliases列表个数超出限制
119162 ExtParams key/value个数超出限制
119170 ActionType参数无效
119171 RemindType参数无效
119172 SendType参数无效
119173 ExtParams参数无效
119174 Badge参数无效
119175 ExpireTime参数无效