web-dev-qa-db-ja.com

GCMのAPIキーが突然無効になりましたか?不正(401)エラー

作成したAndroid私のAndroidアプリケーションのGCMプッシュ通知用のAPIキー。過去2日間から、GCMサーバーはPHPでUnauthorized(401)応答を返します。

Android APIキーが無効/期限切れですか?またはAndroid APIキーがGCMで廃止されましたか?

それでも、なぜAndroid APIキーが無効ですか?ほとんどの人は、Android GCMのAPIキーですが、言及していません。 Android APIキーを使用しない理由について。

GCMでAndroid APIキーを使用しないのはなぜですか?Android APIキー?またはGCMサーバーが通知をブロックする/ GCMサーバーがAndroid通知メッセージが1日あたりの制限を超えている場合、APIキーは無効ですか?

25
kumar

Update :使用されている用語はServer Keyに戻ります。

つい最近、 Firebase Cloud Messaging Token (FCM Token)が公開されました。これは、Firebase Consoleの[クラウドメッセージング]タブに表示されます。


Update GCM docs に目に見えるメモがあります:

2016年9月以降、新しいサーバーキーは、設定パネルの クラウドメッセージング タブを使用してFirebase Consoleでのみ作成できます。新しいサーバーキーを作成する必要がある既存のプロジェクトは、既存の構成に影響を与えることなく Firebaseコンソール にインポートできます。


Update GCMからFCM に移行すると、401 Unauthorized Errorの問題が修正されるようです。

GCM を使用し始めたばかりの場合は、Google Developers Consoleでプロジェクトを作成する代わりに、Firebase Consoleで作成します。プロジェクトを作成したら、自動生成されたサーバーキーを使用します。サーバーキーを見つける手順は次のとおりです。

  1. Firebase Console に移動し、をクリックします CREATE NEW PROJECT
  2. 目的のプロジェクト名を入力し、国を選択します。この後、新しいプロジェクトがアクティブになります。
  3. 次に、左側のパネルで、ギアボタンをクリックし、プロジェクト設定を選択します。
  4. 次に、クラウドメッセージングタブに移動します。

古いGCMプロジェクトの場合、Firebase Consoleにプロジェクトを簡単にインポートできます。

  1. Firebase Console に移動し、をクリックします IMPORT PROJECT
  2. インポートするプロジェクトと国を選択します。
  3. クリック ADD FIREBASE。この後、新しいプロジェクトがアクティブになります。
  4. 次に、左側のパネルで、ギアボタンをクリックし、プロジェクト設定を選択します。
  5. 次に、クラウドメッセージングタブに移動します。

何らかの理由で、サーバーキーのみがGCMで機能するようになりました。 Androidキーは無効と思われる唯一のキーではありません。他のすべてのクライアントAPIキー(ブラウザ、iOS、Android)はそうです。


サーバーキー の説明に関する場合:

アプリケーションがサーバーで実行される場合は、サーバーキーを作成して使用します。

サーバーでAPIキーを使用しており、GCM接続サーバーで動作しているため、サーバーキーを使用することは論理的です。

FCM docsGCM docsCredentialsの下)を比較すると、 GCMではAPIキーのみを示しますが、FCMでは既にサーバーキーを指定しています。 FCMはGCMの新しいバージョンですが、何か関係があるのでしょうか?確かではありませんが、私が言っていることの要点を知っていると思います。

Update :GCMドキュメントでは、サーバーキーが示されています。


デフォルトでは、 APIプロジェクトの構成 ステップを実行した後、サーバーAPIキーが生成されます(Android app)を選択してテストしました。 firebase-cloud-messaging 。新しいプロジェクトを作成するたびに、サーバーキーが自動的に生成されます。

将来的にはその理由について説明があればいいのですが。


先に進み、サーバーキーの作成手順を追加します。他の人が混乱したり、初心者がどのようにわからない場合に備えて。

  1. Google Developers Console に移動します
  2. 左ペインで、をクリックします Credentials
  3. 資格情報タブで、をクリックします Create Credentials
  4. 選択する API Key

---開発者コンソールの更新により、ここで手順が削減されます ---

  1. 選択する Server Key
  2. 詳細を入力します。
  3. クリック Create

サーバーキーはそれまでに利用可能になっているはずです。


Update :APIキーの生成時に最近の変更があったようです。上記のステップ4までは同じです。ただし、APIキーを選択すると、キーの種類(サーバー、Android、ブラウザー、iOS)を尋ねることなく、APIキーが直接作成されます。設定できるのはRestrictionsのみです。これは、生成するAPIキーに応じて表示されます。


Update :制限なしでAPIキーを作成すると、APIキーが脆弱であるという通知(感嘆符)が表示されるため、を強くお勧めします。 を使用して制限を追加します APIキーを使用します。 1つ post にこの問題があり、制限を追加することで解決できました。

62
AL.