Дополнительно
ios facebook sdk 4.0 код ошибки входа 304
Я'только что обновил facebook sdk v4.0
и согласно руководству Using Custom Login UIs
-(IBAction)facebookLoginClick:(id)sender {
FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
[login logInWithReadPermissions:@[@"email"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
if (error) {
// Process error
} else if (result.isCancelled) {
// Handle cancellations
} else {
// If you ask for multiple permissions at once, you
// should check if specific permissions missing
if ([result.grantedPermissions containsObject:@"email"]) {
// Do work
}
}
}];
}
НО результат всегда нулевой и код ошибки 304, **я что-то упускаю?
64
14
У меня была похожая проблема.
После инициализации
FBSDKLoginManager
я добавил строку, чтобы выманить сведения и (Facebook)маркер:Надеюсь, что это помогает.
Таким образом, точно так же, как ОП вопрошает: "я упустил что-то-то"?
Да, следующий стандартный пример кода, который виден во всем, это просто неправильно:
вы должны сделать это:
В противном случае, очень просто, приложение не будет работать если пользователь изменение аккаунтов на устройстве. (Если они по какой-то причине повторно установить приложение!)
Еще раз повторю - популярный пример кода выше просто не работает (приложение переходит в бесконечный цикл), если пользователь случается сменить аккаунт ФБ. "Выход" вызов должен быть выполнен.
Это случилось со мной, когда я изменил код Facebook (В информация.файл plist) форма переключения тестовое приложение Facebook для производства приложение Facebook. Если ваше приложение отправляет маркер на сервер, создать JWT для например, Facebook, Facebook SDK по-прежнему сохраняется сеанса в fbToken (
.currentAccessToken()
) сохраняется, если она's сказала, чтобы удалить его. Что может случиться на производстве, когда пользователь выходит из приложения, выход запроса API будет регистрировать пользователя и сбросить вышлю. Но еще до отправки журнала из API-запрос, клиент должен сказатьFBSDKLoginManager
экземпляр, чтобы выйти.У меня было такое, это произошло при изменении данных приложения FB в Xcode во время работы приложения iOS. Вам нужно удалить приложение с устройства, а затем опубликовать его заново с новыми настройками приложения FB. Просто перекомпиляции недостаточно, чтобы очистить старые настройки FB.
Свифт 3.0
Вы можете использовать следующий код, чтобы решить вашу проблему :
Согласно документам, 304
FBSDKLoginUserMismatchErrorCode
"и указывает на отсутствие нового разрешения, поскольку пользователь был изменен на".Смысла в сценарии @Adrian999 упомянул.
Свифт 4.0 и FBSDKCoreKit 4.33
Свифт 4.0, 4.2, 5.0
На самом деле, причина очень простая, вы можете попробовать следующий шаг, чтобы легко появится этот код ошибки.
В "войти Facebook нето" может иметь две причины:
Код в <код>FBSDKLoginManager.м в< код> есть:
когда в <код>currentToken.ID пользователя</код> не равно <код>actualID</код>, в <код>FBSDKLoginUserMismatchErrorCode</код> бросят.
Теперь эта проблема будет появляться, когда пользователь логин facebook не,но у вас нет <код>[FacebookSDKManager выход]</код> после сбой, приложение будет кэшировать маркер доступа для пользователя , и пользователь изменить facebook аккаунт, чтобы пользователь, когда пользователь логин facebook снова,она снова появится эта проблема.
Я тоже застрял на этой проблеме на некоторое время. затем я создал объект для FBSDKLoginManager в .файл H И в метод viewDidLoad из .файл м , инициализировать его и установите свойство "выход".
Это помогло мне и надеюсь, поможет вам. Все самое лучшее.
Спасибо
Для меня в Objective-C после работал
и вопрос был пользователь пытался войти в качестве другого пользователя, как предложил @Vineeth Джозеф
Единого Входа
Я've также обнаружили, что эта проблема происходит, если у вас есть приложение, которое не требует единый вход (т. е. приложение, которое разные пользователи будут создавать контент и делиться с одного устройства).
Вы можете изменить один знак в меню настроек https://developers.facebook.com/apps/your-app-id/settings/.
Проверьте состояние вашей FBSession:
304 означает, что ничего не изменилось. Возможно, вы каким-то образом уже аутентифицированы и поэтому получаете nil с 304, что означает, что ничего не изменилось.