php - 使用 PHP 的 GCM 实现总是面临未经授权的错误 401

标签 php android push-notification google-api google-cloud-messaging

我总是收到 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/

相关文章:

php - 在没有 PECL 的情况下使用 PHP 从 PC 中提取唯一标识符?

php - 尝试实现全文搜索时出现SQL错误

android - 同时选择 ImageButton 和 TextView

android - 屏幕关闭时检测音量按钮按下

Android GCM 通知返回堆栈

ios - 服务已禁用-已为应用程序ID禁用推送服务

php - HTMLPurifier 真的那么防弹吗?

php - 为什么我的 mysql 表的后续结果没有在 ListView 中创建新对象?

java - ArrayAdapter.clear() 上的 NPE

c# - Apple 在 C# 中推送通知提供程序