OneSignal消息推送API接口

功能:服务端推送通知到用户手机端

OneSignal信息推送,包含推送信息,email,sms短信,这里只讲服务端推送的接口

客户端要先通过app在OneSignal注册,然后OneSignal管理后台就能看到用户的信息

https://github.com/OneSignal/onesignal-java-api/blob/main/docs/DefaultApi.md#createNotification

 这个接口是OneSignal的api文档,createNotification则是推送消息的接口

依赖包:

		
		<!-- Onesignal 消息推送依赖库 -->
		<dependency>
			<groupId>org.openapitools</groupId>
			<artifactId>onesignal-java-client</artifactId>
			<version>1.0.1</version>
		</dependency>
        <!-- HTTP客户端依赖库,也是Onesignal包的依赖 -->
		<dependency>
			<groupId>com.squareup.okhttp3</groupId>
			<artifactId>logging-interceptor</artifactId>
			<version>4.9.3</version>
		</dependency>
		<dependency>
			<groupId>com.squareup.okhttp3</groupId>
			<artifactId>okhttp</artifactId>
			<version>4.9.3</version>
		</dependency>
onesignal-java-client这个jar包maven库没有,导不下来,我是直接用源码压成jar包用的

 找不到包的可以直接下面这个链接下载

onesignal-java-client jar包

import com.alibaba.fastjson.JSON;
import com.bizzan.bitrade.vo.MessageVO;
import com.onesignal.client.ApiClient;
import com.onesignal.client.ApiException;
import com.onesignal.client.Configuration;
import com.onesignal.client.auth.*;
import com.onesignal.client.model.*;
import com.onesignal.client.api.DefaultApi;
import okhttp3.*;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

@Service
public class PushMessages {

    public static void main(String[] args) throws IOException {
        createNotification();
    }

    /**
     * 创建通知 发布/通知
     */
    public static void createNotification() throws IOException {
        //appId
        String appId = "";
        //密钥
        String appKeyToken = "";
        //密钥和appId在onesignal的管理后台可以获得,需要先注册添加
        ApiClient defaultClient = Configuration.getDefaultApiClient();
        HttpBearerAuth appKey = (HttpBearerAuth)                 
        defaultClient.getAuthentication("app_key");
        appKey.setBearerToken(appKeyToken);


        defaultClient.setBasePath("https://onesignal.com/api/v1");
        DefaultApi apiInstance = new DefaultApi(defaultClient);
        Notification notification = new Notification(); // Notification |
        notification.setAppId(appId);


        StringMap map = new StringMap();
        map.setEn("");//发送英语
        map.setZhHant("");//发送汉语-(这个hant好像是繁体还是简体,忘了)
        notification.setContents(map);//发送内容
        notification.setData(obj);//obj可以是自己定义的实体格式
        notification.setContentAvailable(true);//是否要在手机通知栏通知,就是下拉看到的,true是不通知
        List<String> list = new ArrayList<>();
//        list.add("");
//        notification.setIncludeExternalUserIds(list);//通过外部用户id推送(外部就是你们自己定义的,比如你们数据库的用户id)
//        list.add("Subscribed Users");//Subscribed Users=订阅
//        notification.setIncludedSegments(list);//群体发送(发送对象:订阅用户/活跃用户/所有用户)
        list.add("aaaaa-bbbbb-ccccc-ddddd-eeeeeee");//多个值则添加多次,表示推送多个用户
        notification.setIncludePlayerIds(list);//通过playerId推送(playerId是onesignal定义的,客户端在onesignal注册后会返会playerId)
//        notification.setIsAndroid(true);//true会给所有安卓用户推送
//        notification.setIsIos(true);//true给所有ios的用户推送
        notification.setChannelForExternalUserIds("push");//push推送消息,值还有email/sms
        try {
            CreateNotificationSuccessResponse result = apiInstance.createNotification(notification);
            System.out.println(result);
        } catch (ApiException e) {
            System.err.println("Exception when calling DefaultApi#createNotification");
            System.err.println("Status code: " + e.getCode());
            System.err.println("Reason: " + e.getResponseBody());
            System.err.println("Response headers: " + e.getResponseHeaders());
            e.printStackTrace();
        }
    }


}

推送成功返回消息:

class CreateNotificationSuccessResponse {
    id: 5522d11-5d83-4cdf-b0d2-8dc9789445
    recipients: 1
    externalId: null
    errors: null
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值