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

Ios4 使用iphone sdk中的有效用户会话请求扩展权限,ios4,login,permissions,facebook,publish,Ios4,Login,Permissions,Facebook,Publish,我的iphone应用程序正在使用facebook sdk实现标准的facebook连接功能。 在第一步中,仅向用户请求脱机访问权限 现在我需要向已经通过身份验证的用户请求发布流权限 我在这里所做的是使用Facebook类的相同“authorize:delegate:”方法请求扩展权限,唯一的区别是我将Facebook manager的accessToken和expirationDate属性设置为从第一次身份验证中获取的值: Facebook *facebook = [[Facebook allo

我的iphone应用程序正在使用facebook sdk实现标准的facebook连接功能。 在第一步中,仅向用户请求脱机访问权限

现在我需要向已经通过身份验证的用户请求发布流权限

我在这里所做的是使用Facebook类的相同“authorize:delegate:”方法请求扩展权限,唯一的区别是我将Facebook manager的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];
这可以正常工作,但有些情况除外:在请求新权限之前,可能会向用户显示一个新的登录对话框

这对于我的实现来说是一个问题,因为用户可能会使用不同的凭据登录并中断我的会话

我不明白为什么会发生这种情况,因为我也要求用户进行脱机访问。
我仍然想知道是否需要设置访问令牌和过期日期。

我必须请求会话的扩展权限redardless。在这种情况下,IF是错误的。如果你想要任何扩展权限,那么在你的权限数组中添加这些权限,并使用[facebook authorize:permissions delegate:self];问题是在用户已登录后请求其他权限。当我调用“授权”时,fb sdk有时会提示一个新的登录对话框这对我来说是个问题,因为用户可能会使用其他帐户登录。是的。如果会话无效,它将自动提示用户登录,然后请求许可。因此我觉得你没有为你的facebook obj授予会话代理。签出我的答案使用集不使用点语法
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];
}