PHP对接极光推送使用别名方式推送,抓包分析云平台没有与极光服务交互。请问是什么原因

别名
php
收不到消息
标签: #<Tag:0x00007fb84dac8930> #<Tag:0x00007fb84dac86d8> #<Tag:0x00007fb84dac84a8>

#1

php 对接后台 在天翼云服务器上 app调用接口时 抓包发现云服务没有数据包发送请求到极光那边 。 抓包连DNS解析过程都没看到 知道是什么原因吗 。。用的是别名推送的形式


#2

额,这个是不是得看下服务端日志呀,是不是端口限制了什么的?


#3

exception:Invalid android extras value URL:m=login&a=test&admind=1455,这是日志部分,端口没有限制。


#4

给一个完整的报错信息吧,catch下极光的报错码

这句话大致在说 Android的extras参数有 误?

参考下PHP的example,阅读文档


#5
exception 'InvalidArgumentException' with message 'Invalid android extras value' in /var/www/html/include/JPush/core/PushPayload.php:279
Stack trace:
#0 /var/www/html/include/chajian/appPushChajian.php(114): PushPayload->addAndroidNotification('\xE5\x86\x85\xE5\xAE\xB9', '\xE6\xB5\x8B\xE8\xAF\x95\xE4\xBF\xA1\xE6\x81\xAF', 1, '\xE9\xA2\x9D\xE5\xA4\x96\xE4\xBF\xA1\xE6\x81\xAF')
#1 /var/www/html/webmain/task/app/loginAction.php(307): appPushChajian->pushToJPush('120c83f7602dc42...', '\xE6\xB5\x8B\xE8\xAF\x95\xE4\xBF\xA1\xE6\x81\xAF', '\xE5\x86\x85\xE5\xAE\xB9', '\xE9\xA2\x9D\xE5\xA4\x96\xE4\xBF\xA1\xE6\x81\xAF')
#2 /var/www/html/include/View.php(41): loginClassAction->testAction()
#3 /var/www/html/app.php(15): include_once('/var/www/html/i...')
#4 {main}

上面的就是抛出的异常信息。


#6

你这里的extras是啥?这里不是报了非法吗?检查一下参数


#7

你好那个是而外的参数信息,下面的是调用函数

>  public function pushToJPush($registerArr, $title, $cont, $extras=null)
> > {
> >     //$logPath = "/var/www/html/upload/jpush";
> >     $result = false;
> >     $logPath = '';
> >     try {
> >         $client = new JPush($this->app_key, $this->master_secret, $logPath);
> >         $obj 	= $client->push()->setPlatform('all');
> >         $obj->addRegistrationId($registerArr)->build();
> >         $result	= $obj
> >             ->setNotificationAlert($cont)
> >             ->addAndroidNotification($cont, $title, 1, $extras)
> >             ->addIosNotification($cont)
> >             ->send();
> >     } catch (Exception $e) {
> >         $this->rock->debug("exception:".$e->getMessage(), "appPush");
> >         return false;
> >     }


> >     $this->rock->debug("setd to JPush is {$result}", "appPush");

> >     return $result;
> > }

现在我去掉extras的参数,
抛出的异常如下

> exception 'APIConnectionException' with message 'Connect timeout. Please retry later. Error:7 Failed to connect to api.jpush.cn port 443: Connection refused' in /var/www/html/include/JPush/core/JPush.php:115
> Stack trace:
> #0 /var/www/html/include/JPush/core/JPush.php(118): JPush->_request('https://api.jpu...', 'POST', '{"platform":"al...', 5)
> #1 /var/www/html/include/JPush/core/JPush.php(118): JPush->_request('https://api.jpu...', 'POST', '{"platform":"al...', 4)
> #2 /var/www/html/include/JPush/core/JPush.php(118): JPush->_request('https://api.jpu...', 'POST', '{"platform":"al...', 3)
> #3 /var/www/html/include/JPush/core/JPush.php(118): JPush->_request('https://api.jpu...', 'POST', '{"platform":"al...', 2)
> #4 /var/www/html/include/JPush/core/PushPayload.php(550): JPush->_request('https://api.jpu...', 'POST', '{"platform":"al...')
> #5 /var/www/html/include/chajian/appPushChajian.php(116): PushPayload->send()
> #6 /var/www/html/webmain/task/app/knowledgeAction.php(392): appPushChajian->pushToJPush('120c83f7602dc42...', '\xE6\xB5\x8B\xE8\xAF\x95\xE6\x9E\x81\xE5\x85\x89', '\xE6\xB5\x8B\xE8\xAF\x95\xE5\x86\x85\xE5\xAE\xB9')
> #7 /var/www/html/include/View.php(41): knowledgeClassAction->testAction()
> #8 /var/www/html/app.php(15): include_once('/var/www/html/i...')
> #9 {main}

#8

首先说明PHP的文档里面提到的

extras得是数组

再就是你去掉之后报的错,是超时,还是得检查下有没有 网络限制


#9

网络限制? 是指哪方面的? 我部署在云平台的其他的服务可以正常运行。


#10

就是之前说的,有没有屏蔽我们的域名等,防火墙之类的。


#11

请先升级一下 php server sdk 到 3.5.x