3

常に 401 エラーが発生します。ローカル サーバーを使用している場合、HTTP リファラーを正確に教えてください。つまり、現在私は使用しています:

    http://localhost/GCM/index.php 

それを使用してAPIアクセスキーを生成します。

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;
                }
4

3 に答える 3

8

私は同じ問題と戦いました。それはIPv6関連であることが判明しました!http://developer.android.com/google/gcm/gs.htmlで説明されているように、 0.0.0.0 /0 を許可されたホスト IP として使用してサーバー キーを作成しましたが、IPv6 と一致しません。そこで、別の許可されたホスト ライン IP を0::0/0として追加し、それが機能しました (しばらくして、キャッシュされた構成を更新するために?)。

IP フィールドを空白のままにすると、任意の IP が許可され、より簡単になります。

于 2014-06-23T07:47:14.897 に答える
1

これは、IP が GCM にアクセスできるようになっていないためです。GOOGLE でネットワーク IP タイプ「my ip 」を知るには、Google_Api_Console でサーバー キーを作成し、サーバーキーの生成でその IP を使用します。 php ファイルをローカル サーバーに配置します。最初の画像は、選択する Google コンソールのキーのリストを示し、サーバー キーを選択し、2 番目の画像は、有効にする必要がある IP を配置することを示しています。

IMG1 IMG2

于 2014-02-07T12:39:10.060 に答える