已经设置过别名,推送时报错找不到注册的用户

8100
alias
error
收不到消息
标签: #<Tag:0x00007fb83cd15c80> #<Tag:0x00007fb83cd15af0> #<Tag:0x00007fb83cd15938> #<Tag:0x00007fb83cd157f8>

(Remember。) #1

我有两个账号test1和test2 我在极光推送服务平台上给这两个账号以别名的方式发消息 两个都能收到 但是我自己在手机上登录test1给test2发消息
报错:responseCode:400, responseContent:{“error”:{“message”:“The schedule-task is invalid, push is invalid:cannot find user by this audience”,“code”:8100}}
test2已经注册了 要不然也不会能收到平台上发的消息 请问谁能告诉我这是什么原因吗


#2

这是定时任务里面出现的错误码

我不清楚你账号之间发消息是怎么发的,使用的Jmessage会话消息还是JPush推送消息?出现这个错误却表示了你使用了定时消息


(Remember。) #3

我是这么做的 手机上可以收到 但是手机与手机之间发送消息就报错说找不到用户 因为第一次做消息推送 所以不太明白您的意思


#4

那么请问你手机与手机之间发送消息你是怎么做的呢?


(Remember。) #5

var name = this.comp(‘name’).val();
window.plugins.jPushPlugin.setAlias(name);

首先用户登录的时候获取登录名当做别名

var message = “您有新的订单需要审核,请注意查收!”;
Baas.sendRequest({
“method” : “post”,
“url” : “/jpush/jpush”,
“action” : “push”,
“anync” : false,
“params” : {
registrationId : salesman,
sendMessage : message,
}
});

salesman 这个是要发送对象的别名


#6

手机发推送消息是要调用 推送接口的,推送要求详细看文档:
https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push/

registrationID是指的是:
https://docs.jiguang.cn/jpush/client/Android/android_api/#registrationid-api

别名是alias。

请仔细看看这些文档再进行。


(Remember。) #7

我们这是一个平台 里面调用极光推送的方法已经写好了 我是要参数传进去 registrationId这个我在java文件里设置的就是别名 您看下我加粗字体部分

public static ScheduleResult sendPushMessage(String mess,String registrationId, String key, String secret) throws APIConnectionException, APIRequestException{
        System.out.println("=========================="+registrationId);
    	ClientConfig config = ClientConfig.getInstance();
        HttpProxy proxy = null;
        if (useProxy) {
            proxy = new HttpProxy("http-proxy.system", 3128);
        }
        jpushClient = new JPushClient(secret, key, 3, proxy, config);
        PushPayload payload = PushPayload.newBuilder()
        .setPlatform(Platform.all())
//        .setAudience(Audience.registrationId(registrationId))
        .setAudience(Audience.alias(registrationId))
        .setNotification(Notification.alert(mess))
        .build();
        payload.resetOptionsTimeToLive(86400);
        payload.resetOptionsApnsProduction(apnsProduction);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Calendar nowTime = Calendar.getInstance();
        nowTime.add(Calendar.MINUTE, 1);
        String scheduleTime =sdf.format(nowTime.getTime());
        ScheduleResult result = jpushClient.createSingleSchedule(UUID.randomUUID().toString().replaceAll("-", ""), scheduleTime, payload);
        return result;
    }

#8

首先提醒你,你发送的是定时任务。(schedule)

然后,出现这个错误,需要检查audience参数,是否正确。
参照源码的写法,你可能少了“”


(Remember。) #9

安卓与安卓手机之家互相发消息已经可以了 现在是苹果手机收不到 用广播也收不到


#10

苹果手机是生产环境吗?
可能需要设置一下环境:
https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push/#options


(Remember。) #11

生产环境是验证成功的


#12

我不是说你生产环境是否有验证成功。

而是说你服务端进行生产环境的推送时,需要指定环境。链接中有提到 apns_production

如果确认推送环境正确,app的打包环境也正确,那么请提供msgid和registrationID来查询


(Remember。) #13


#14

麻烦你提供 一下 设置了别名的那个registrationID,请帖文本谢谢


(Remember。) #15

发送编号 1476693424
Message ID 2286614870
registrationID SX1001


#16

registrationID不是这个。
iOS的registrationID获取方法点我
Android的registrationID获取方法点我


(Remember。) #17

1.现在问题是获取不到RegistrationID ,不知道是什么原因
我用同一个应用名作的另外两个例子都能正常发消息,代码和打包方式都一样,不知道是什么地方出现了问题。
下面是获得RegistrationID 的代码,

	JPushInstance.prototype.onDeviceReady = function() {
		
		var self = this;
		window.plugins.jPushPlugin.init();
		window.plugins.jPushPlugin.getRegistrationID(function(registrationID) {
			self.registrationID = registrationID;
			alert("registrationID:"+registrationID);
		});
		if (device.platform == "Android") {
			window.plugins.jPushPlugin.setDebugMode(false);
			window.plugins.jPushPlugin.setApplicationIconBadgeNumber(0);
		} else {
			window.plugins.jPushPlugin.setDebugMode(false);
			window.plugins.jPushPlugin.setApplicationIconBadgeNumber(0);
		}
	};

#18

是只有一台手机获取不到还是?
手机系统是多少?

提供下获取不到registrationID的日志。
需要初始化成功之后调用获取方法才能获取到registrationID


(Remember。) #19

andriod也是这个代码,一直都是可以的,ios其他的两个例子都是好的,就是正式的应用所有的手机现在不行。请问怎么能看到日志?


#20