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);
}

猜你喜欢

转载自blog.csdn.net/quantum7/article/details/81329164
今日推荐