zoukankan      html  css  js  c++  java
  • 想让用户“一见钟情”,你需要主题订阅消息精准推送

    现今智能终端App越来越多,各个App推送的信息量急速扩张,如何让自己推送的信息精准抓住用户的视线,在市场竞争中占据高地?其中一个答案就是——主题订阅消息推送。

    主题订阅消息推送可以根据用户习惯或让用户自定义感兴趣主题,应用再根据需要撰写主题消息,推送服务负责将消息可靠地传送至正确的设备,从而实现精准推送。

    例如,某个天气预报应用的用户可选择加入“X市天气”主题,并接收关于本地天气的通知。

    华为主题订阅消息推送服务具有稳定、及时、高效的特点,多种推送样式、自动推送通知、Deep linking能够助力应用精准触达用户,有效提升用户活跃度和粘度。

    接下来,我们详细解析如何集成华为主题订阅消息推送服务

    一、整体开发流程

    Step1:应用App主题订阅;

    Step2:向订阅主题的用户群发送消息;

    Step3:验证主题订阅消息成功送达。

    服务端主题订阅推送消息交互流程图

    主题订阅有两种实现方式:App客户端主题订阅和服务端主题订阅。本文将分别详细介绍这两种订阅方式的实现步骤及代码。

    二、集成关键步骤说明和代码实现

    (一)客户端主题订阅

    客户端主题订阅代码实现:

    public void subtopic(View view) {

        String SUBTAG = "subtopic";

        String topic = "weather";

        try {

            // 主题订阅

        HmsMessaging.getInstance(PushClient.this).subscribe(topic).addOnCompleteListener(new OnCompleteListener<Void>() {

                @Override

                public void onComplete(Task<Void> task) {

                    if (task.isSuccessful()) {

                        Log.i(SUBTAG, "subscribe topic weather successful");

                    } else {

                        Log.e(SUBTAG, "subscribe topic failed,return value is" + task.getException().getMessage());

                    }

                }

            });

        } catch (Exception e) {

            Log.e(SUBTAG, "subscribe faied,catch exception:" + e.getMessage());

        }

    }

    App端测自定义订阅界面:

    主题订阅取消代码实现:

    public void unsubtopic(View view) {

        String SUBTAG = "unsubtopic";

        String topic = "weather";

        try {

            // 主题订阅

            HmsMessaging.getInstance(PushClient.this).unsubscribe(topic).addOnCompleteListener(new OnCompleteListener<Void>() {

                @Override

                public void onComplete(Task<Void> task) {

                    if (task.isSuccessful()) {

                        Log.i(SUBTAG, "unsubscribe topic successful");

                    } else {

                        Log.e(SUBTAG, "unsubscribe topic failed,return value is" + task.getException().getMessage());

                    }

                }

            });

        } catch (Exception e) {

            Log.e(SUBTAG, "subscribe faied,catch exception:" + e.getMessage());

       }
    }

    App端测自定义取消订阅界面:

     

    (二)服务端主题订阅

    1、获取Access Token。调用华为帐号服务器的接口(https://oauth-login.cloud.huawei.com/oauth2/v3/token),获取应用级鉴权凭证Access Token。

    (1)请求消息:

    POST /oauth2/v3/token HTTP/1.1
    Host: oauth-login.cloud.huawei.com
    Content-Type: application/x-www-form-urlencoded
     
    grant_type=client_credentials&
    client_id=<APP ID >&
    client_secret=<APP secret >

    (2)获取Access Token请求消息实战演示:

    2、主题订阅与退订。服务器调用服务端主题订阅API或主题退订API进行应用主题订阅或退订,实现对应用主题的管理。主题订阅与退订的区别在于接口地址稍有不同,请求消息头和消息体均为一直,具体如下:

    (1)主题订阅接口:

    https://push-api.cloud.huawei.com/v1/[appid]/topic:subscribe

    (2)主题取消订阅接口:

    https://push-api.cloud.huawei.com/v1/[appid]/topic:unsubscribe

    (3)请求消息头示例,此处Bearer Token为上一步获取的Access Token:

    Authorization: Bearer CV0kkX7yVJZcTi1i+uk…Kp4HGfZXJ5wSH/MwIriqHa9h2q66KSl5
    Content-Type: application/json

    (4)请求消息体示例:

    {
        "topic": "weather",
        "tokenArray": [
            "AOffIB70WGIqdFJWJvwG7SOB...xRVgtbqhESkoJLlW-TKeTjQvzeLm8Up1-3K7",
            "AKk3BMXyo80KlS9AgnpCkk8l...uEUQmD8s1lHQ0yx8We9C47yD58t2s8QkOgnQ"
        ]
    }

    (5)请求消息实战演示:

    (三)发送主题消息

    当创建完主题后,就可以根据主题发送消息,当前支持基于HTTPS协议进行主题消息发送。基于HTTPS协议示例报文如下:

    {
        "validate_only": false,
        "message": {
            "notification": {
                "title": "message title",
                "body": "message body"
            },
            "android": {
                "notification": {
                    "click_action": {
                        "type": 1,
                        "action": "com.huawei.codelabpush.intent.action.test"
                    }
                }
            },
            "topic": "weather"
        }
    }

    App客户端测展示收到的推送消息:

    三、主题订阅消息注意事项

    •   客户端应用可以订阅任何现有主题,也可创建新主题。当客户端应用订阅新的主题名称尚不存在时,推送服务会使用这个名称创建一个新主题,随后任何客户端都可订阅该主题。

    •   推送服务端给您提供了基本的主题管理API,支持一次1000个以内的Token订阅或者退订某个主题,同时每个应用最多只能存在2000个不同的主题。

    •   主题与Token的订阅关系生效需等待一分钟,待订阅关系生效后,可以通过指向Topic或者组合Topic条件的方式实现消息批量发送。

    >>华为开发者联盟官网

    >>获取开发指导文档
    >>参与开发者讨论请到CSDN社区或者Reddit社区
    >>下载demo和示例代码请到Github或者Gitee
    >>解决集成问题请到Stack Overflow

    原文链接:https://developer.huawei.com/...
    原作者:胡椒

  • 相关阅读:
    day54——Python 处理图片
    day53——Python 处理 Excel 数据
    day52——Python 处理附件
    day51——爬虫(一)
    大数据治理体系简谈
    redis环境的安装
    微服务体系操作日志如何记录?
    mysql数据库设计规范
    win系统下git代码批量克隆,批量更新
    java实现二维码登录功能
  • 原文地址:https://www.cnblogs.com/developer-huawei/p/15128674.html
Copyright © 2011-2022 走看看