一个客户要求在他的项目中使用亚马逊的pinpoint做移动推送,查阅文档后发现还是一脸懵逼,还是在亚马逊的一名技术人员的引导下才找到方法,下面把代码记录一下

该项目服务端是基于springboot,客户端用的RN,本文只记录服务端部分

首先是依赖要有

<!--亚马逊pinpoint服务-->
<dependency><groupId>com.amazonaws</groupId><artifactId>aws-java-sdk-pinpoint</artifactId><version>1.11.888</version>
</dependency>

然后在test中简要示例代码

package com.abon.v2ce;import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.AWSCredentialsProvider;
import com.amazonaws.auth.AWSStaticCredentialsProvider;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.pinpoint.AmazonPinpoint;
import com.amazonaws.services.pinpoint.AmazonPinpointClientBuilder;
import com.amazonaws.services.pinpoint.model.*;
import org.junit.Test;import java.util.HashMap;
import java.util.Map;public class AwsPinpointTest {protected static String accessKeyId = "xxxxxxxxxxxxxxxx";protected static String accessKeySecret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+cq";private static final Regions region = Regions.US_EAST_2;// IOS推送测试@Testpublic void sendForIos() {String appId = "xxxxxxxxxxxxxxxx";String deviceId = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";try {AWSCredentials awsCredentials = new BasicAWSCredentials(accessKeyId, accessKeySecret);AWSCredentialsProvider awsCredentialsProvider = new AWSStaticCredentialsProvider(awsCredentials);AmazonPinpoint client = AmazonPinpointClientBuilder.standard().withCredentials(awsCredentialsProvider).withRegion(region).build();Map<String, AddressConfiguration> addressMap = new HashMap<>();addressMap.put(deviceId, new AddressConfiguration().withChannelType(ChannelType.APNS));SendMessagesRequest request = new SendMessagesRequest().withApplicationId(appId).withMessageRequest(new MessageRequest().withAddresses(addressMap).withMessageConfiguration(new DirectMessageConfiguration().withAPNSMessage(new APNSMessage().withAction("OPEN_APP").withAPNSPushType("alert").withBody("消息内容:" + System.currentTimeMillis()).withTitle("this is title"))));client.sendMessages(request);System.out.println("publish ok!");} catch (Exception ex) {System.out.println("publish error: " + ex.getMessage());}}// Android推送测试@Testpublic void sendForAndroid() {String appId = "xxxxxxxxxxxxxxxx";String deviceId = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";try {AWSCredentials awsCredentials = new BasicAWSCredentials(accessKeyId, accessKeySecret);AWSCredentialsProvider awsCredentialsProvider = new AWSStaticCredentialsProvider(awsCredentials);AmazonPinpoint client = AmazonPinpointClientBuilder.standard().withCredentials(awsCredentialsProvider).withRegion(region).build();Map<String, AddressConfiguration> addressMap = new HashMap<>();addressMap.put(deviceId, new AddressConfiguration().withChannelType(ChannelType.GCM));SendMessagesRequest request = new SendMessagesRequest().withApplicationId(appId).withMessageRequest(new MessageRequest().withAddresses(addressMap).withMessageConfiguration(new DirectMessageConfiguration().withGCMMessage(new GCMMessage().withAction("OPEN_APP").withBody("消息内容:" + System.currentTimeMillis()).withTitle("this is title"))));client.sendMessages(request);System.out.println("publish ok!");} catch (Exception ex) {System.out.println("publish error: " + ex.getMessage());}}}

要注意的是,sdk中对账号密钥的鉴权我没有用它官网说的文件的方式,而是直接用的awsCredentialsProvider

使用Amazon Pinpoint做移动端推送相关推荐

  1. springboot实现SSE服务端主动向客户端推送数据,java服务端向客户端推送数据,kotlin模拟客户端向服务端推送数据

    SSE服务端推送 服务器向浏览器推送信息,除了 WebSocket,还有一种方法:Server-Sent Events(以下简称 SSE).本文介绍它的用法. 在很多业务场景中,会涉及到服务端向客户端 ...

  2. Java 服务端推送消息有那么难吗?

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 转自公众号:码农小胖哥 今天项目经理交给我一个开发任务.如果有人在前台下了订单就给后台仓库管 ...

  3. PHP服务端推送技术Long Polling

    perfgeeks linux . bash . php . python . c PHP服务端推送技术Long Polling Long Polling与Polling概述 服务端推送技术应用越来越 ...

  4. JAVA实现QQ:实现文字聊天、QQ用户登录、拉取在线用户列表、无异常退出、私聊、发文件、下载文件、离线留言、服务端推送新闻等功能(后端无界面,Utilty源码在后面、)

    这个仿QQ项目是参考韩顺平老师的多线程课程做的,因为个人觉得非常有意义特别是让我对多线程通信又了一个新的理解因此我准备写一篇总结(如果觉得视频太长可以参考下): 具体视频地址:大家给韩老师一键三连[韩 ...

  5. springboot 之 webscoket 服务端推送

    因为最近有后端实时推送数据的需求,所以想到了websocket组件,在此写一下springboot集成使用websocket的方法,供各位童鞋参考. 注:基于test项目. 1.首先打开pom.xml ...

  6. 修改网页代码_利用网页监控优势,做百度自动推送

    网页监控是什么?WEB视界网页监控是指利用自动化服务来扫描监控网站页面,当发现网站页面有变化时,就立即作出响应的服务.网页监控优势有很多,那么如何利用网页监控优势来做百度自动推送呢? 网页监控做百度推 ...

  7. 山东电销机器人_山东自主研发电销机器人意向客户微信端推送 欢迎来电「南京和付信息科技供应」...

    山东自主研发电销机器人意向客户微信端推送, 探意智能语音机器人,完美替代人工,智能语音识别,语义理解,高度模拟真人通话,量身定制话术,自定义客户识别维度,标签分类管理,后台使用更加方便效果好快捷,支持 ...

  8. nett服务器接收消息的方法,C#(一沙框架) .net core3.1 SignalR 服务端推送消息至客户端的实现方法,用弹窗插件进行显示,非常美观实用...

    C#(一沙框架) .net core3.1 SignalR 服务端推送消息至客户端的实现方法,用弹窗插件进行显示,非常美观实用 运行效果: 1.安装Microsoft.AspNetCore.Signa ...

  9. 【SEO】利用网页监控来做百度同步推送

    百度主送推送(实时)是在百度站长工具改版升级之后推出的一款帮助站长快速向百度提交链接的工具,有助于让百度快速发现新链接,促进网站收录.它是所有提交方式里面最为快速的一种,建议站长将站点当天新产出链接立 ...

  10. 移动推送--阿里云appKey分端推送问题

    阿里云移动推送时,区分了安卓端和IOS端推送.因为在新建引用时,就区分了安卓应用和IOS应用,并且分别生成了2个不同的appKey. 经过本人亲身接入经验,阿里目前没有一个统一的appKey来自动关联 ...

最新文章

  1. URI、URL以及URN的区别
  2. python 中类属性共享问题
  3. 机器学习基础知识之矩阵
  4. cassandra百亿级数据库迁移实践
  5. 五个简单的原则,带你写出整洁代码
  6. Mysql MMM 高可用
  7. iptables常用
  8. Java 发送邮件工具类(多个收件人,多个抄送人)
  9. 【CV】MobileNetV2:具有倒置残差和线性瓶颈的 CNN 骨干网络
  10. c语言作业朱鸣华,C语言程序设计习题解析与上机指导 第3版
  11. 【新年快乐】2022年跨年钟声即将敲响,2021终将成为历史
  12. RSS是什么,RSS怎么玩,RSS原理是什么
  13. 入门级node+uni-app开发即时通讯聊天室(3)用户的搜索以及好友添加(二)
  14. java公众号互推联盟_写公众号15个月以来,这一路上的学习与收获
  15. 2018-2019第一学期Java助教心得
  16. python 微博图片爬虫 不用cookie
  17. 大数据采集技术有哪些
  18. 一阶导数和二阶导数的意义
  19. 华为设备配置PIM-SM命令
  20. 实例1QQ好友列表界面和九宫格

热门文章

  1. 2.7 新奇点和离群点检测
  2. Java学习之Xml系列七:Dom4j——专题2:基于Xpath的若干复杂例子
  3. Python报错记录 | TypeError: unsupported operand type(s) for +: ‘bool‘ and ‘str‘
  4. 传统行业数据架构发展变化
  5. 30多岁转行医疗器械维修行业有前景吗
  6. 摆脱 Android 和 iOS:七款免费开源移动操作系统的尝试
  7. 零碳数科CEO闫保磊:推进工业互联网建设需要工业机理和数字科技相融合
  8. 毕业设计--基于Django的歌曲推荐系统和论坛
  9. 计算机考研推荐学校211张雪峰,考研考上非985、211,值不值得去读?张雪峰老师字字珠玑!...
  10. 商品序列建模在新用户承接上的应用实践