FCM: неверный параметр, причина токена для iOS - PullRequest
0 голосов
/ 30 мая 2019

Я интегрирую FCM в свое приложение для iOS. Я получаю эту ошибку при отправке токена на свой бэкэнд-сервер:

Неверный параметр: Токен Причина: токены устройства iOS должны содержать не более 400 шестнадцатеричных символов

И в своем коде я отправляю на сервер маркер регистрации FCM. Это правильно? или я должен вместо этого отправить токен устройства? Если да, то для чего используется этот регистрационный токен FCM?

Нужна помощь в этом.

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
//Get FCM registration token
[[FIRInstanceID instanceID] instanceIDWithHandler:^(FIRInstanceIDResult * _Nullable result,
                                                    NSError * _Nullable error) {
    if (error != nil) {
        NSLog(@"Error fetching remote instance ID: %@", error);
    } else {
        NSLog(@"Remote instance ID token: %@", result.token);

        [UserDefaultUtility setDeviceToken:result.token];
    }
}];

}

#pragma mark - FCM delegate
- (void)messaging:(FIRMessaging *)messaging didReceiveRegistrationToken:(NSString *)fcmToken {
// Note: This callback is fired at each app startup and whenever a new token is generated.

NSLog(@"FCM registration token: %@", fcmToken);
[UserDefaultUtility setDeviceToken:fcmToken];

}

Я делаю это на симуляторе, это влияет на это?

1 Ответ

0 голосов
/ 30 мая 2019

Вероятно, это ошибка вашего бэкенда.

Токен FCM создается Firebase, и только Firebase обрабатывает сопоставления между токеном FCM и токеном устройства iOS.Таким образом, когда вы используете FCM, вы заботитесь только о токене FCM, так что это именно то, что вы должны отправлять.Однако, похоже, что ваш сервер по какой-то причине ожидает настоящий токен устройства iOS.

Таким образом, чтобы исправить эту ошибку, вы должны изменить свой внутренний код (который вы не предоставили, поэтому я не могу помочь с этим), чтобы он не ожидал фактического токена устройства iOS, а вместо этого ожидаеттокен FCM.

Затем, чтобы «использовать FCM», вы изменили свой бэкэнд, чтобы прекратить непосредственное взаимодействие с серверами push-уведомлений Apple (или любой другой службой, которую вы в данный момент использовали, для которой требовался фактический токен устройства iOS),и вместо этого начните взаимодействовать с API-интерфейсами FCM, используя любой из методов, перечисленных в документации .API FCM будут использовать токен FCM, чтобы определить, на какое устройство отправлять push-уведомления.

...