Сообщение успешно отправлено: проекты//сообщения/
В моем приложении Swift на моем реальном устройстве iPhone (iOS 18) я добавил делегат приложения ниже, и я протестировал его и Токен FCM успешно создан. После того, как токен FCM сгенерирован в функции делегата, я вызываю Messaging.messaging().subscribe(toTopic: "info") { error in, который завершается успешно, и я не получаю никаких ошибок.
На моем сервере администратора Firebase Python я аутентифицируюсь с помощью служебного json-файла (я знаю, что это работает, потому что я могу писать/читать из базы данных), ниже я добавлю изображение для разрешений для этой учетной записи службы из IAM. Кроме того, если я возьму токен FCM, который генерирует мой iPhone, и попытаюсь отправить сообщение непосредственно на токен, я получу эту ошибку:
requests.Exceptions.HTTPError : 401 Ошибка клиента: Не авторизован для URL-адреса: https://fcm.googleapis.com/v1/projects/ ... sages:send firebase_admin._messaging_utils.ThirdPartyAuthError: ошибка аутентификации от APNS или службы Web Push
Буду признателен за любую помощь в работе этих push-уведомлений Firebase.
Код: Выделить всё
class AppDelegate: UIResponder, UIApplicationDelegate, MessagingDelegate, UNUserNotificationCenterDelegate {
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
FirebaseApp.configure()
Messaging.messaging().delegate = self
UNUserNotificationCenter.current().delegate = self
let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
UNUserNotificationCenter.current().requestAuthorization(options: authOptions) { _, _ in }
application.registerForRemoteNotifications()
return true
}
func application(
_ application: UIApplication,
didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data
) {
Messaging.messaging().apnsToken = deviceToken
}
func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String?) { }
}
Код: Выделить всё
import firebase_admin
from firebase_admin import messaging, credentials
cred = credentials.Certificate("credsAhmed.json")
firebase_admin.initialize_app(cred)
message = messaging.Message(
notification=messaging.Notification(
title = "New Release",
body = "Nike Book 1 The Nightmare Before Christmas",
),
topic = 'info',
)
response = messaging.send(message)
print('Successfully sent message:', response)

Подробнее здесь: https://stackoverflow.com/questions/792 ... ic-message