java极光短信的集成
来源:互联网 发布:知乎俄罗斯航空发动机 编辑:程序博客网 时间:2024/05/19 20:48
因公司项目需要,研究了一下极光的短信集成,踩了不少坑,特此记录总结一下自己前段时间的学习:
--------------------------------------------------------我是分割线---------------------------------------------------------------
第一部分:
导入jar包,我的项目是用maven,在pom文件的通过依赖注入:
maven 方式
将下边的依赖条件放到你项目的 maven pom.xml 文件里。
其中 slf4j 可以与 logback, log4j, commons-logging 等日志框架一起工作,可根据你的需要配置使用。
<dependency> <groupId>cn.jpush.api</groupId> <artifactId>jsms-client</artifactId> <version>1.2.5</version></dependency><dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.3</version></dependency><dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.7</version></dependency><dependency> <groupId>cn.jpush.api</groupId> <artifactId>jiguang-common</artifactId> <version>1.0.8</version></dependency><!-- For log4j --><dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.7</version></dependency><dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version></dependency>
第二部分:
注册极光的账户,拿到AppKey和MasterSecret,此处就不多介绍了,可以参看官网的入门指南点击打开链接,一定要拿到AppKey和MasterSecret后边集成
demo时会用到;认证完后得20条免费的短信,方便测试;
根据自己的需求去设置这些东西;
第四部分:
进入极光官网--->极光官网--->开发者服务--->极光短信--->进入会有对短信概要,最下边有个接入平台,如下图:完后会进入RESTAPI,仔细参看API,不然都不知道怎么跳进坑的,所以---->好好了解API
极光还是很人性的,给了源码看看demo相当的仔细,点击打开链接
示例代码如下:
public class JSMSExample {
protected static final Logger LOG = LoggerFactory.getLogger(JSMSExample.class); private static final String appkey = "242780bfdd7315dc1989fe2b"; private static final String masterSecret ="2f5ced2bef64167950e63d13"; public static void main(String[] args) { testSendSMSCode(); testSendValidSMSCode(); } //发送短信验证码 public static String testSendSMSCode(String phone) { SMSClient client = new SMSClient(masterSecret, appkey); SMSPayload payload = SMSPayload.newBuilder() .setMobileNumber("13800138000") .setTempId(1) .build();String resule = null; try { SendSMSResult res = client.sendSMSCode(payload); System.out.println(res.toString()); LOG.info(res.toString()); } catch (APIConnectionException e) { LOG.error("Connection error. Should retry later.", e); } catch (APIRequestException e) { LOG.error("Error response from JPush server. Should review and fix it. ", e); LOG.info("HTTP Status:" + e.getStatus()); LOG.info("Error Message:" + e.getMessage()); }result = res.toString()return result;//返回的是json{msg_id:"4346777"} } //验证码校验 public static Boolean testSendValidSMSCode(String msg_id,String valid) { SMSClient client = new SMSClient(masterSecret, appkey);Boolean valid = false; try { ValidSMSResult res = client.sendValidSMSCode(msg_id ,valid);valid = res.getIs_Valid System.out.println(res.toString()); LOG.info(res.toString());return valid; } catch (APIConnectionException e) { e.printStackTrace(); System.out.println(e.getMessage()); LOG.error("Connection error. Should retry later.", e); } catch (APIRequestException e) { e.printStackTrace(); if (e.getErrorCode()== 50010) { // do something } System.out.println(e.getStatus()+ " errorCode: "+ e.getErrorCode()+ " "+ e.getErrorMessage()); LOG.error("Error response from JPush server. Should review and fix it. ", e); LOG.info("HTTP Status:" + e.getStatus()); LOG.info("Error Message:" + e.getMessage()); } } }第五部分:
坑1:
验证码valid默认设置成true,当为错误验证信息(空、不是6位数字时)走catch抛异常,默认返回还是true,不对的,改成false就ok;
坑2:
注册接口独立,发送短信接口独立,注册时只有验证码通过才能注册成功,此时问题,发送接口在注册里再被调拿到的msg_id与第一回的不一样,但是必须注册调校验接口传参数msg_id ,最后解决问题,独立调发送接口将msg_id返回安卓,安卓注册时再传进来俩参数,ok
-----------------------------------因公司不能带出来代码,所以没禁止思路跟跳的坑,特此记录、总结,完-----------------------------------------------
- java极光短信的集成
- 极光短信验证码的集成过程
- java服务端极光推送消息的集成
- 极光推送的集成
- 极光推送的集成
- 极光推送的集成
- 极光推送的集成
- 由集成极光推送引发的java.lang.NoClassDefFoundError
- 极光推送的集成步骤
- Android 极光推送的集成
- Java 阿里云短信服务的集成
- Android学习之如何集成极光短信验证
- android studio极光推送的集成
- Android 集成极光推送的第三方
- Android集成极光推送 的异常
- 极光推送的基本集成步骤
- 集成极光推送的一点说明
- 极光推送jcenter集成的坑
- 深夜切题——PKKJ的生日礼物
- Java基础-为什么要抽象?
- Python入门记——模块的命名空间
- 安卓真机测试
- centos 6.9配置IP
- java极光短信的集成
- poj2528 线段树+离散化
- 2x+xy+x/y=243求正整数解代码
- 搭建GCC交叉编译工具链
- PAT 甲级 1047. Student List for Course (25)
- 订单可视化2实战-生产交付流程(流程再造核心区)
- 介绍一种适合多人共同开发的模式
- C语言命令行参数
- HTML5与JQuery炫酷经典实例