2015-07-21 97 views
5

就像标题所说,这是一个错误还是真的有可能?我使用[FBSDKAccessToken currentAccessToken].tokenString来检查现有的Facebook会话是否存在,然后我将使用[FBSDKProfile currentProfile].userID获取会话的userId。 但是有时我遇到[FBSDKAccessToken currentAccessToken].tokenString有一个值,但是[FBSDKProfile currentProfile]是零。FBSDKProfile currentProfile为零,但FBSDKAccessToken currentAccessToken的值为

我将其用于我的应用程序的自动登录功能。

感谢您的回复!

所以我有这样的代码片段:

if ([FBSDKAccessToken currentAccessToken].tokenString){ 
//proceed to auto login since Facebook is still logged in 
     NSLog(@"Facebook user id: %@",[FBSDKProfile currentProfile].userID) 
    } 

该日志的回报是零。

+1

请提供您所看到的错误,了恰当的代码片段,以便人们更好地理解和回答您的问题 –

+0

我编辑了我的帖子。谢谢!我希望提供的信息够了。我只想澄清是否有可能拥有现有的令牌,但Facebook个人资料为零。 – Vilowapo

+0

代码是不够的,在这里有一个完整的示例项目会更有帮助。您是否检查过令牌实际上是否有效,一旦您最终出现上述情况,即您有令牌但FBSDKProfile为零? –

回答

1
if ([FBSDKAccessToken currentAccessToken].tokenString) { 
    [FBSDKProfile enableUpdatesOnAccessTokenChange:YES]; 
    NSLog(@"Facebook user id: %@",[FBSDKProfile currentProfile].userID); 
} 

你需要调用[FBSDKProfile enableUpdatesOnAccessTokenChange:YES]使其自动观测更改[FBSDKAccessToken currentAccessToken]

+0

你也可以用它来获取图像 [[FBSDKProfile currentProfile] imageURLForPictureMode :FBSDKProfilePictureModeNormal size:CGSizeMake(100,100)] –