Facebook iOS SDK - как определить, удалил ли пользователь приложение, не вызывая авторизацию каждый раз?

Я внедряю Facebook iOS SDK в свое приложение, как указано в документации Facebook. А именно, токены доступа и соответствующие сроки действия сохраняются таким образом, что каждый раз, когда выполняется моя процедура входа в Facebook, она может проверить isSessionValid и, если ДА, избежать выполнения постороннего вызова authorize. Это прекрасно работает, за исключением случаев, когда пользователь с тех пор деавторизовал или удалил приложение Facebook.

Поскольку isSessionValid проверяет только наличие сохраненного токена доступа и истечение срока действия, не похоже, что есть какой-либо способ поймать случай, когда приложение было деавторизовано, и, таким образом, снова выполнить authorize.

У кого-нибудь есть хорошее решение для этого?

Поскольку мое приложение поддерживает свой собственный сеанс и должно держать пользователей в системе неопределенно долго, вся процедура должна действительно выполняться только один раз, поэтому накладные расходы, связанные с тем, что вы просто забываете о сохранении токенов/истечений и запускаете authorize каждый раз, могут быть не такими уж плохими. Дайте мне знать, что вы думаете.


person G.S.    schedule 26.03.2012    source источник


Ответы (1)


Вы можете установить только авторизацию с помощью Safari или авторизацию внутри приложения, для этого вам нужно отредактировать файл Facebook.m из:

[self authorizeWithFBAppAuth:YES safariAuth:YES];

to:

[self authorizeWithFBAppAuth:NO safariAuth:NO];
person Michal Zaborowski    schedule 26.03.2012
comment
Я знаю об этом - как это поможет в этой ситуации? Проблема не в средствах авторизации, а в том, что если мы использовали сохраненные токены, у нас нет возможности проверить, удалил/деавторизовал ли пользователь приложение через свой профиль Facebook. - person G.S.; 27.03.2012
comment
Извините, я не прочитал это правильно, я не уверен, но нет возможности проверить это через fb api, вы проверяли, когда запускается fbDidNotLogin или некоторые из делегатов FbSession? но вы можете создать сервер, на котором у вас будет база данных авторизованных пользователей для вашего приложения, и каждый раз, когда пользователь открывает ваше приложение, вы будете проверять, является ли токен пользователя по умолчанию на сервере. - person Michal Zaborowski; 27.03.2012