最近uni-push 2.0推出来后,因为我司系统之前接入的个推1.0出现不稳定情况,所以决定换成uni-push 2.0。
在接入的过程中,不是很顺利,现在把采坑点列出,并附解决方法。帮助同为码农的你。
首先,配下自己的云url,这个怎么配,去看官网文档,很详细。配好后,简单的用api工具请求下这个url是否正确。
如果请求后,发信息发送到自己的测试机上,说明云url没问题。
后面自信满满的用php代码封装了请求方法。
一请求发现第一次是成功的,第二次报如下问题。duplicate message content。一开始我以为是官方防机器请求,所以有这个限制,所以我聪明的给它加上header里的各种头,结果还是一样。
后面云咨询了官方技术支持。
官方回复是:服务器没有接收到cid,所以被认为是群发,而群发是每分钟5次的限制。
这个就奇怪了,我明明传了cid呀。
后来,自己再去官网查文档,认认真真的把文档从头过一遍。发现url后,有后端可查看请求日志,点进去发现我请求的中文怎么被编码了。
找到了问题点,那我们就得去改我们的请求入参了,在那个环节被编码过。
顺着源码,我找我司封装的curl请求方法,在这个地方被编码过。但我的content-type声明的是text,所以被当文本处理了,
所在这里我改了:1去掉json_encode 或是 把content-type改成application/json
编辑下内容,请求成功。
我同事见这样curl不够优雅,所以叫我换成 GuzzleHttp,好吧,换上确实能省不少代码。
如上图,确实也能请求成功,发送信息了。