10

以下は、サーバーおよびブラウザー アプリケーションの API キーが有効であるにもかかわらず、例外が発生する場合です。curlで確認しました。UTF-8 と JSON の両方の形式で GCM リクエストを送信します。外部の企業ネットワークからテストします。

java.io.IOException: Server returned HTTP response code: 401 for URL: https://android.googleapis.com/gcm/send
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at sun.net.www.protocol.http.HttpURLConnection$6.run(HttpURLConnection.java:1345)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1339)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:993)
        at java.net.URLConnection.getContent(URLConnection.java:688)
        at sun.net.www.protocol.https.HttpsURLConnectionImpl.getContent(HttpsURLConnectionImpl.java:406)
        at gcm1.MessageUtil.sendMessage(MessageUtil.java:58)

この理由と解決策を教えてください。

4

3 に答える 3

7

GCM 使用時の 401 エラーの考えられる原因は次のとおりです。

メッセージの送信に使用しようとしている送信者アカウントを認証できませんでした。考えられる原因は次のとおりです。

  • 認証ヘッダーが見つからないか、構文が無効です。
  • キーとして送信されたプロジェクト ID が無効です。
  • キーは有効ですが、GCM サービスが無効になっています。
  • サーバー キー IP でホワイトリストに登録されていないサーバーからの要求。

Authorization ヘッダー内で送信しているトークンが、プロジェクトに関連付けられた正しい API キーであることを確認してください。

ソース: https://developers.google.com/cloud-messaging/http-server-ref#error-codes

于 2012-08-10T14:33:32.723 に答える
0

私の場合、問題は、データストアに正しいAPIキーを設定した後に再デプロイするのを忘れたことでした。

于 2012-10-05T12:03:36.447 に答える