0

我正在使用 Xcode 4.3.1

我使用下面的代码来获取 Facebook 访问令牌。

在 Appdelegate 中:

facebook=[[Facebook alloc]initWithAppId:appid andDelegate:first];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"FBAccessTokenKey"] 
    && [defaults objectForKey:@"FBExpirationDateKey"]) 
{
   facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
   facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
   accessToken=facebook.accessToken;
   date=facebook.expirationDate;
}
 - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
    return [ self.facebook handleOpenURL:url];
}

Facebook SSO(登录)在 viewController 中:

-(IBAction)LoginClick:(id)sender {

    accesstoken=xapp.accessToken;
    date=xapp.date;
    [self fbDidExtendToken:xapp.accessToken expiresAt:xapp.date];  //For extending tokens
    NSLog(@"accesstoken:%@",accesstoken);
    if (![xapp.facebook isSessionValid]) 
    {
        [xapp.facebook authorize:permissions];
    }
    else 
    { 
        [xapp.facebook authorize: nil];

    }
}

在这里我无法正确处理会话。我的要求是第一次用户必须登录并且他应该授权应用程序。一旦他完成了应用程序不应该要求授权。现在它每次都要求授权我正在运行应用程序。我该如何解决这个问题.....

4

2 回答 2

0

登录后是否将令牌保存到用户默认值?

 // this is a delegate method of FBSessionDelegate, called after user successfully login
- (void)fbDidLogin 
{
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:[xapp.facebook accessToken] forKey:@"FBAccessTokenKey"];
    [defaults setObject:[xapp.facebook expirationDate] forKey:@"FBExpirationDateKey"];
    [defaults synchronize];
}
于 2012-07-19T08:15:01.510 回答
0

使用最新的 FBGraph API.... 检查此链接如何从当前应用程序通过邮件、twitter 和 facebook 共享或发布?进一步查询。这篇文章包括 FB、Twitter 和电子邮件的所有最新技术。

于 2012-07-19T07:41:31.747 回答