使用PHP GCM实现始终面临着未经授权错误401 [英] GCM Implementation using PHP always facing Unauthorized Error 401

查看:222
本文介绍了使用PHP GCM实现始终面临着未经授权错误401的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我总是得到401 error.Please任何一个可以让我知道,如果我用我的本地服务器究竟应该是HTTP引荐。即目前我使用:

  HTTP://localhost/GCM/index.php
 

和使用它生成的API访问密钥。

下面是我的PHP $ C $下GCM的要求。

  $键='的myKey';
                $标题=阵列('的contentType:应用程序/ JSON','授权:键='$键);
                $ URL ='https://android.googleapis.com/gcm/send';
                $ CH = curl_init();
                $ curlConfig =阵列(
                CURLOPT_URL => $网址,
                CURLOPT_POST =>真正,
                CURLOPT_RETURNTRANSFER =>真正,
                CURLOPT_POSTFIELDS => json_en code(阵列('字段1'=>有些日子,场2'=>其他一些数据',)),
                CURLOPT_HTTPHEADER => $头,
                CURLOPT_SSL_VERIFYPEER =>假,
                CURLOPT_SSL_VERIFYHOST =>假,
                );
                curl_setopt_array($ CH,$ curlConfig);
                $结果= curl_exec($ CH);
                curl_close($ CH);
                如果($结果== FALSE){
                    回声curl_error($ CH);
                    回声curl_getinfo($ CH);
                }其他{
                    回声$结果;
                }
 

解决方案

我争夺同样的问题。原来这是IPv6相关!我创建服务器密钥作为<一个描述href="http://developer.android.com/google/gcm/gs.html">http://developer.android.com/google/gcm/gs.html使用 0.0.0.0/0 作为允许的主机的IP,但不符合IPv6的。于是,我又增加了允许的主机IP线作为 0 :: 0/0 和工作(一段时间后,更新缓存配置?)。

离开IP领域的空白允许任何IP和更容易。

I am always getting 401 error.Please any one could let me know exactly what should be HTTP referrers if i am using my local server. i.e Currently I am using:

    http://localhost/GCM/index.php 

and generating a API access key using it.

Here is my php code for GCM request.

                $key='mykey';
                $headers=array('Contenttype:application/json','Authorization:key='.$key);
                $url = 'https://android.googleapis.com/gcm/send';
                $ch = curl_init();
                $curlConfig = array(
                CURLOPT_URL            => $url,
                CURLOPT_POST           => true,
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_POSTFIELDS     => json_encode(array('field1' => 'some date','field2' => 'some other data',)),
                CURLOPT_HTTPHEADER     => $headers,
                CURLOPT_SSL_VERIFYPEER => false,
                CURLOPT_SSL_VERIFYHOST => false,
                );
                curl_setopt_array($ch, $curlConfig);
                $result = curl_exec($ch);
                curl_close($ch);
                if($result==FALSE){
                    echo curl_error($ch);
                    echo curl_getinfo($ch);
                }else{
                    echo $result;
                }

解决方案

I battled same problem. Turned out it was IPv6 related! I created server key as described in http://developer.android.com/google/gcm/gs.html using 0.0.0.0/0 as permitted host IP, but that does not match IPv6. So I added another permitted host line IP as 0::0/0 and that worked (AFTER some time, to update cached config?).

Leaving the IP field blank allows ANY IP and is easier.

这篇关于使用PHP GCM实现始终面临着未经授权错误401的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆