JAVASDK 添加/删除用户标签疑惑求解释

javasdk
标签: #<Tag:0x00007fb83efd36c8>

(咕噜是个大胖子) #1

SDK中的方法
public DefaultResult updateDeviceTagAlias(String registrationId, String alias, Set<String> tagsToAdd, Set<String> tagsToRemove)
个人理解为删除或者添加用户标签/设置别名

下午多次测试时发现,当某用户只存在一个标签时,如A用户只存在深圳标签时,
调用此方法,返回的DefaultResult result是没有异常错误的,responseCode 代码是200,说明执行正确,按道理A用户是不存在任何标签了的。

但是接下来调用getDeviceTagAlias(String registrationId),却发现返回结果中依旧存在深圳标签,–因此产生2点疑问

1、是否有保护机制?即删除某个用户的最后一个标签时,返回结果成功,实际极光未删掉标签?
2、是否有数据延迟或者缓存存在,即调用查询接口时,返回的是缓存内的结果或者说未删除的结果?

另外有个问题,调用isDeviceInTag(String theTag, String registrationID)方法时,很奇怪返回结果报请求异常,但是错误信息却如下所示,无法排查出任何问题:


#2

调用成功后,就代表你这个操作已经成功了。不会有缓存或者保护机制。

你所使用的 SDK 的具体版本号是多少?

你上述测试得到的日志和你请求的具体参数提供一下


(咕噜是个大胖子) #3

你好,我是直接pom文件中增加的配置

调用删除方法:

请求参数如下:
registrationId是“190e35f7e0401cc0fac”,
alias传入null
tagsToAdd传入null
tagsToRemove中只有一个元素“深圳”,

调用方法后未抛出任何异常,即视为成功

接下来调用获取接口getDeviceTagAlias(String registrationId)

返回结果如下:

测试过几次,删除后,马上调用查询,标签依然会存在


(咕噜是个大胖子) #4

另外,刚才经过几次测试后,又发现了上述问题,A用户存在4个标签,我一次删除2个标签,未抛异常,然后我查询,依旧是4个标签。。。所以不确认到底是哪块出了问题,如果是请求的时候参数异常,按道理应该直接就抛出异常给我,但是我又未接受到异常,就感觉时灵时不灵的情况一样


(KenChoi) #5

我这里测试是正常的,你的主机域名有没有改?
另外 isDeviceInTag 我这里请求异常的结果是正常的,有错误信息打印:

Got error response - responseCode:400, responseContent:{"error":{"code":7002, "message":"The registration_id does not belong to this appkey!"}}

(咕噜是个大胖子) #6

isDeviceInTag 请求的结果异常如下:

{“responseCode”:400,“responseContent”:"",“error”:{“msg_id”:0,“error”:{“code”:0}},“rateLimitQuota”:1200,“rateLimitRemaining”:1199,“rateLimitReset”:60}


#7

你的应用是 北京机房的吧?在应用详情里面有写,有没有改请求的域名,改为北京的


(咕噜是个大胖子) #8

应用是北京机房的,我改下试试,谢谢了


(咕噜是个大胖子) #9

亲,在咨询下,应用是北京机房的,那么我生成客户端的时候替换了域名

然后我看了下最后生成的client的属性如下:

然后调用查询接口会报404错误,是否还要将
aliasesPath、tagsPath、devicesPath、替换成对应的?

如tagPath 应该要替换成“/v3/device/tags” ??,但是我看了构造函数,这个tagPath属性是由ClientConfig已经确定好了的,没有地方进行修改。难道要重写一个构造函数来处理?
不能像 config.setDeviceHostName(“https://bjapi.push.jiguang.cn”);这样便捷的设定?


(KenChoi) #10

你可以调用 ClientConfig.getInstance().put(TAGS_PATH, “/v3/device/tags”)


java开发消息推送成功,手机收不到消息提醒
(咕噜是个大胖子) #11

哦哦,懂了,替换掉value,谢谢