我的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];
这种方法很好,除了某些情况:在请求新权限之前,可能会向用户显示新的登录对话框。
这对我的实施来说是一个问题,因为用户可能会使用不同的凭据登录并破坏我的会话。
我无法弄清楚为什么要求用户进行离线访问也会发生这种情况。 我仍然想知道是否实际需要设置访问令牌和到期日期。
答案 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];
}