[解決済み] firebase (fcm) が 401 許可されないと表示しました。
2022-02-11 01:38:49
質問
private void sendMsg() {
DBManager dbManager = DBManager.getInstance();
ArrayList<String> firebaseIds;
try {
ResultSet rs= dbManager.getRegisteredFirebaseDevice();
while(rs.next()){
System.out.println(rs.getString(1));
firebaseIds.add(rs.getString(1));
}
} catch (SQLException e) {
e.printStackTrace();
}
String url = "https://fcm.googleapis.com/fcm/send";
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
// add reuqest header
con.setRequestMethod("POST");
con.setRequestProperty("Authorization: key", "AIzaSyAl6S936qt_NKKFwwbd-NEmiSGIL7G_yJc");
con.setRequestProperty("Content-Type", "application/json");
// String msg="New design added in "+getCategory(designCategory)+". Design no."+designNo;
// String urlParameters = "data.msg="+msg+"®istration_id="+firebaseIds.get(0);
JSONObject msg=new JSONObject();
msg.put("msg","New design added in "+getCategory(designCategory)+". Design no."+designNo);
JSONObject parent=new JSONObject();
parent.put("to", firebaseIds.get(0));
parent.put("data", msg);
// String urlParameters = "registration_id="+firebaseIds.get(0);
// Send post request
con.setDoOutput(true);
OutputStreamWriter wr= new OutputStreamWriter(con.getOutputStream());
wr.write(parent.toString());
// DataOutputStream wr = new DataOutputStream(con.getOutputStream());
// wr.writeBytes(urlParameters);
// wr.flush();
// wr.close();
int responseCode = con.getResponseCode();
System.out.println("\nSending 'POST' request to URL : " + url);
System.out.println("Post parameters : " + parent.toString());
System.out.println("Response Code : " + responseCode+" "+con.getResponseMessage());
}
上記のコードを呼び出すと、次のような応答が返ってきます。
401 Unauthorized
. なぜこのようなエラーが発生するのか、理解することができません。適切なサーバーキーを使用しました。私の使っているストラテジーに構文エラーや何か問題があるのでしょうか?
を追ったことがあります。 https://firebase.google.com/docs/cloud-messaging/server#implementing-http-connection-server-protocol ドキュメンテーション
どのように解決するのですか?
置き換えてみてください。
con.setRequestProperty("Authorization: key", "<YOUR API KEY>");
を使っています。
con.setRequestProperty("Authorization", "key=<YOUR API KEY>");
関連
-
[解決済み】react-native: コマンドが見つかりません。
-
[解決済み】プロガードを有効にすると、タスク ':app:crashlyticsStoreDeobsDebug' の依存関係を判断できない。
-
[解決済み】Build Tools リビジョン 23.0.1 の検索に失敗しました。
-
[解決済み] sendUserActionEvent() は null です。
-
[解決済み] Mockito lenient() を使用する場合
-
[解決済み] Android: @drawable/picture を drawable に変換するのに失敗しました。
-
[解決済み] FirebaseのapiKeyを公開しても大丈夫ですか?
-
[解決済み] Firebaseでアプリがバックグラウンドにあるときの通知を処理する方法
-
[解決済み】ADB Android デバイスが認証されない件
-
[解決済み】アプリがバックグラウンドにあるとき、Firebase onMessageReceivedが呼ばれない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Android TextView : "setTextで表示されたテキストを連結しない" について
-
[解決済み】com.android.ide.common.process.ProcessException: aaptの実行に失敗しました! どうすればいいですか?
-
[解決済み】Dalvikとdalvik-cacheとは何ですか?
-
[解決済み】Android Studioでマニフェストのマージに失敗し、複数のエラーが発生した。
-
[解決済み】"ビットマップが大きすぎてテクスチャにアップロードできない"
-
[解決済み】リストビューにonclicklistenerを追加する(android)
-
[解決済み】起動アクティビティを特定できませんでした。デフォルトのアクティビティが見つかりませんでした
-
[解決済み】SDKの場所がandroid studioで見つからない。
-
[解決済み】googleコンソールエラー`OR-IEH-01`について
-
[解決済み] サポートされていないメソッドです。BaseConfig.getApplicationIdSuffix()がサポートされていません。