通过iphone sdk中的有效用户会话请求扩展权限

时间:2011-06-08 10:37:48

标签: ios4 login permissions facebook publish

我的iphone应用程序正在使用facebook sdk实现标准的facebook连接功能。 在第一步中,只向用户询问offline_access权限。

现在我需要向已经过身份验证的用户请求publish_stream权限。

我在这里做的是使用与Facebook类相同的“authorize:delegate:”方法来请求扩展权限,唯一的区别是我设置了facebook经理的accessToken和expirationDate属性并获取了值从第一次认证:

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 个答案:

答案 0 :(得分:0)

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];
}