Android, 用户log out 后,JPUSH就给1011

alias
android
标签: #<Tag:0x00007fb837c6a7e0> #<Tag:0x00007fb837c6a6a0>

(Guchuan) #1

请问这是什么情况?

之前,测试的时候,就是删了APP,JPUSH还是能有目标的。

因为alias 更新上有问题,程序员改了些东西。

现在,用户注册后,在线上, 可以产生消息目标。但是LOG OUT后,立即发消息,就是error 1011. 不知怎么de-bug 了。

JPUSH说过和用户上不上线没有关系。

哪里出错了呢? 求教。多谢。

DEBUG:jpush:Received 400 response. Headers:
Server: nginx
Date: Tue, 11 Jul 2017 08:08:23 GMT
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive
X-Rate-Limit-Limit: 600
X-Rate-Limit-Remaining: 599
X-Rate-Limit-Reset: 60
X-JPush-MsgId: 65302194771349008
Body:
{“msg_id”: 65302194771349008, “error”: {“message”: “cannot find user by this audience”, “code”: 1011}}
ERROR:jpush:Request failed with status 400: ‘1011 {u’message’: u’cannot find user by this audience’, u’code’: 1011}’: “cannot find user by this audience”


#2

这说明你们logout后 自己调用API又置空了别名啊,那自然是报没有目标的错误


(Guchuan) #3

又测了下。有些号码,log out 后没事。有些号码, log out 后就没目标了。


#4

(Guchuan) #5

用户账号分两种,

比如果在手机先用 A 登陆, A 消息正常。然后,登出A, 在同一个手机用B登入,发A消息,就报错1011.

但是不是所有号码都这样。有些号码,比如 C登入,就算登出C,然后同一个手机登入D, 发消息, C照样有目标。

都是同一手机,相同APP,怎么会这样呢?A, B, C, D 都是这个手机注册的,时间接近。想不到什么变量解释问题。


(Guchuan) #6

现在问题是这样的,之前APP端有问题,一些用户的alias 是空的。
程序员写了code想把这些空的alias 补上。
但是就发现每次填完下一个用户的alias, 上一个刚被填满alias的用户又被空置了。结果执行了一遍code, 还是没把空白不上。
就像我在楼上描述的, 人工做的话,在同一手机,登出A用户账号,登入B用户账号,再发消息, A就没有目标了。

所以,假设code 没错,就是用户踢走的问题。

求教,怎么批量吧这些用户的alias给补上呢?


#7

1、报错1011是说 别名下一个目标都没有了,而你描述的[quote=“guchuan, post:5, topic:18708”]
不是所有号码都这样。有些号码,比如 C登入,就算登出C,然后同一个手机登入D, 发消息, C照样有目标。
[/quote]

这里是有目标,但是不是C,C收不到消息(除非你D也设置的一样的别名),有其他的设备以前设置过这个别名

2、[quote=“guchuan, post:6, topic:18708”]
每次填完下一个用户的alias, 上一个刚被填满alias的用户又被空置了
[/quote]

你说的这两个用户记录的设备ID是同一个 ?也就是同一个手机?

一个设备只能有一个别名 !

3、极光推送针对的是设备 ,你为什么要补上?服务端设置别名也是给用户当前使用手机的registrationID去设置的

你退出登录时置空别名,本来就是为了让你知道 A登出了,给 A推送消息他收不到,现在把消息存起来,等 A登陆了你再推送

不然你难道要B在手机上 登录时收到A的消息吗??


(Guchuan) #8

谢谢解释。

最初的APP,程序员忘了在注册页传alias. 所以那些注册完之后没有再用app的用户基本就成僵尸了。也没办法通过消息去提醒他们用app。

本来想通过程序把那些空白补上。既然账号都是和设备绑定的,这些批量的空白是没法补了。 只能等用户自动回来,或者发SMS提醒他们了。