我总是收到 401 错误。如果我使用的是本地服务器,任何人都可以让我确切知道 HTTP 引荐来源网址应该是什么。即目前我正在使用:
http://localhost/GCM/index.php
并使用它生成 API 访问 key 。
这是我的 GCM 请求的 php 代码。
$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;
}
最佳答案
我遇到了同样的问题。原来是IPv6相关的!我按照 http://developer.android.com/google/gcm/gs.html 中的描述创建了服务器 key 使用 0.0.0.0/0 作为允许的主机 IP,但不匹配 IPv6。所以我添加了另一个允许的主机线路 IP 作为 0::0/0 并且有效(一段时间后,更新缓存的配置?)。
将 IP 字段留空允许任何 IP,并且更容易。
关于php - 使用 PHP 的 GCM 实现总是面临未经授权的错误 401,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18736162/