全网首发:OPPO推送:服务器端的参考代码,JAVA版

简介: 全网首发:OPPO推送:服务器端的参考代码,JAVA版

近来调试OPPO推送,服务器没有参考代码,简直让人崩溃。于是反复测试,排列组合,找到了正确的办法。也许有朋友也会遇到类似问题,所以在这里把代码共享出来。节省时间不说,最主要心情好一些。


 这些代码经过测试,确定可以产生正确结果。输出文本参考另外一篇文章。


 祝顺利。



 1、获得鉴权令牌:


private static boolean refreshToken() throws IOException
{
    String timestamp = ""+System.currentTimeMillis();
    String sha256= sha256(APP_KEY+timestamp+APP_MASTER_SECRET);
    String msgBody = MessageFormat.format(
            "app_key={0}&sign={1}&timestamp={2}",
            URLEncoder.encode(APP_KEY,   "UTF-8"),
            URLEncoder.encode(sha256,    "UTF-8"),
            URLEncoder.encode(timestamp, "UTF-8"));
    String response = PushManager.httpPost(URL_AUTH, msgBody);
    System.out.println("response="+response);
    if (response.indexOf("Not Allowed") > 0)
    {
        return false;
    }
    JSONObject obj = JSONObject.parseObject(response).getJSONObject("data");
    System.out.println("JSONObject="+obj);
    authToken = obj.getString("auth_token");
    tokenExpiredTime = 24*60*60*1000+obj.getLong("create_time") - 5*60*1000;
    return true;
}



 2、发送推送消息:


public static  void sendNcPushMessage(String token, String username, String mobile) throws IOException
{
    if (tokenExpiredTime <= System.currentTimeMillis())
    {
        refreshToken();
    }
    JSONObject notification = new JSONObject();
    notification.put("title",       username);//消息标题
    notification.put("sub_title",   mobile.length() > 10 ? mobile.substring(0, 10) : mobile);
    notification.put("content",     mobile);//消息内容体
    JSONObject message = new JSONObject();
    message.put("target_type",      2);
    message.put("target_value",     token);
    message.put("notification",     notification);
    //postBody之后不需要再编码。
    String postBody = MessageFormat.format("auth_token={0}&message={1}",
            authToken,
            URLEncoder.encode(message.toString(), "UTF-8"));
    String response = PushManager.httpPost(URL_PUSH, postBody);
    System.out.println("sendNcPushMessage="+response);
}


目录
相关文章
|
13天前
|
Java 测试技术 应用服务中间件
常见 Java 代码缺陷及规避方式(下)
常见 Java 代码缺陷及规避方式(下)
42 0
|
15天前
|
Java
Java中ReentrantLock释放锁代码解析
Java中ReentrantLock释放锁代码解析
25 8
|
2天前
|
Linux 网络安全 开发工具
【超详细!超多图!】【代码管理】Python微信公众号开发(3)- 服务器代码上传Github
【超详细!超多图!】【代码管理】Python微信公众号开发(3)- 服务器代码上传Github
10 0
|
存储 弹性计算 网络协议
阿里云服务器经济型e、通用算力型u1与c7/g7/r7/c8y/g8y/r8y实例区别及选择参考
在阿里云目前的各个活动中,除了轻量应用服务器之外,活动内的云服务器实例规格主要以经济型e、通用算力型u1、计算型c7/c8y、通用型g7/g8y、内存型r7/r8y这几个实例规格为主,c7/c8y属于计算型实例,g7/g8y属于通用型实例,c7/r8y属于内存型实例,c7/g7/r7属于最新第七代云服务器实例,c8y/g8y/r8y属于倚天云服务器实例,不同的云服务器实例规格在性能、特点及适用场景上有所不同,本文大家介绍一下阿里云服务器经济型e、通用算力型u1与c7/g7/r7/c8y/g8y/r8y的区别,以供参考。
阿里云服务器经济型e、通用算力型u1与c7/g7/r7/c8y/g8y/r8y实例区别及选择参考
|
8天前
|
人工智能 安全 云计算
阿里云服务器购买之后发票如何申请?申请发票流程及常见问题参考
申请发票是很多用户尤其是企业级用户在购买完阿里云服务器之后非常关注的问题,对于初次购买阿里云服务器的用户来说,往往并不清楚如何找阿里云申请发票,本文以图文形式为大家介绍阿里云服务器购买完成之后申请发票的详细流程以及常见问题。
阿里云服务器购买之后发票如何申请?申请发票流程及常见问题参考
|
11天前
|
存储 弹性计算 安全
阿里云服务器2核2G、2核4G配置最新租用收费标准及活动价格参考
2核2G、2核4G配置是很多个人和企业建站以及部署中小型的web应用等场景时首选的云服务器配置,这些配置的租用价格也是用户非常关心的问题,本文为大家整理汇总了2024年阿里云服务器2核2G、2核4G配置不同实例规格及地域之间的收费标准,同时整理了这些配置最新活动价格,以供大家参考和选择。
阿里云服务器2核2G、2核4G配置最新租用收费标准及活动价格参考
|
13天前
|
Java
代码的魔法师:Java反射工厂模式详解
代码的魔法师:Java反射工厂模式详解
26 0
|
13天前
|
监控 安全 Java
常见 Java 代码缺陷及规避方式(中)
常见 Java 代码缺陷及规避方式(中)
27 1
|
16天前
|
设计模式 算法 Java
23种设计模式,模板方法模式的概念优缺点以及JAVA代码举例
【4月更文挑战第10天】模板方法模式是一种行为设计模式,它定义了一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些特定步骤。
15 0
|
17天前
|
设计模式 Java
23种设计模式,状态模式的概念优缺点以及JAVA代码举例
【4月更文挑战第9天】状态模式是一种行为设计模式,允许一个对象在其内部状态改变时改变它的行为,这个对象看起来似乎修改了它的类。
29 4