Запросите расширенные разрешения с действительным сеансом пользователя в iphone SDK

В моем приложении для iphone реализована стандартная функция подключения к Facebook с использованием Facebook SDK. на первом шаге пользователю запрашивается только разрешение offline_access.

Теперь мне нужно запросить разрешение publish_stream для пользователя, уже прошедшего аутентификацию.

Здесь я использую тот же метод authorize: делегат: класса Facebook, чтобы запрашивать расширенные разрешения, с той лишь разницей, что я устанавливаю свойство accessToken и expirationDate менеджера facebook со значениями, полученными из первого аутентификация:

Facebook *facebook = [[Facebook alloc] initWithAppId:@"YOUR_APP_ID"];
facebook.accessToken = /* read access token from user defaults */;
facebook.expirationDate = /* read expiration date from user defaults */;

NSArray *permissions =  [NSArray arrayWithObject:@"publish_stream"];
[facebook authorize:permissions delegate:self];

Это работает нормально, за исключением некоторых случаев: может случиться так, что новый диалог входа в систему отобразится пользователю перед запросом новых разрешений.

Это проблема для моей реализации, потому что пользователь может войти в систему с разными учетными данными и прервать мой сеанс.

Я не могу понять, почему это происходит, спросив пользователя о автономном доступе тоже. Мне все еще интересно, требуется ли на самом деле установка токена доступа и срока действия.

1 ответ

Facebook *facebook = [[Facebook alloc] initWithAppId:@"YOUR_APP_ID"];
//facebook.accessToken = /* read access token from user defaults */;
//facebook.expirationDate = /* read expiration date from user defaults */;

[facebook setAccessToken:urtoken];

[facebook setExpirationDate:expdate];


NSArray *permissions =  [NSArray arrayWithObject:@"publish_stream"];

if(![facbook isSessionValid])
{
[facebook authorize:permissions delegate:self];
}
Другие вопросы по тегам