使用PHP GCM实现始终面临着未经授权错误401 [英] GCM Implementation using PHP always facing Unauthorized Error 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屋!