1. ホーム
  2. android

[解決済み] GCM サーバーサイドから "MismatchSenderId" と表示されるのはなぜですか?

2022-02-19 13:43:05

質問

Androidアプリのプッシュサービスを作ろうとしているのですが、この件に関してはGoogle GCMのドキュメントとサンプルに従いました。

Androidアプリの登録・解除ができるようになりました。サーバー側からは、1つのサブスクリプションが登録されていることが確認できますが、サーバーから私のAndroidアプリにメッセージを送信しようとすると、常に以下のエラーが表示されます。

<ブロッククオート

デバイス#0へのメッセージ送信エラー: MismatchSenderId

私のAndroidアプリでは、SENDER_ID = 200000000001を使用しています。

そして、Googleが言うように私のサーバーサイドでは、API_KEY = AIzxxxxxxxxxxxxxxxxxxXXXXxxxxsを使用しています。

私はこのドキュメントに従いました。

<ブロッククオート

http://developer.android.com/guide/google/gcm/demo.html

Google APIパネルでGCMを有効にしているのですが、あのうっとうしいエラーメッセージが表示されます。

どうすればこの問題を解決できますか?

解決方法は?

GCM サーバーからアプリに返された新しい登録 ID をサーバーで使用しましたか?私は、古いC2DMサーバーから返された登録IDにメッセージを送信しようとした場合、この問題が発生しました。

また、Sender IDとAPI_KEYをダブルチェックし、それらが一致しなければ、MismatchSenderIdエラーが発生することになります。Google API Consoleで、プロジェクトのURLを見てください。

https://code.google.com/apis/console/#project:xxxxxxxxxxx

xxxxxxxはプロジェクトIDで、これが送信者IDになります。

そして、API Keyが「Key for server apps (with IP locking)」に属していることを確認する。