我可以通过以下方式访问用户的Facebook:
[accStore requestAccessToAccountsWithType:fbAccountType
options:options
completion:^(BOOL granted, NSError *error) {
if (granted) {
// If access granted, then get the Facebook account info
NSArray *accounts = [accStore
accountsWithAccountType:fbAccountType];
ACAccount *acc = [accounts lastObject];
// Get the access token, could be used in other scenarios
ACAccountCredential *fbCredential = [acc credential];
NSString *accessToken = [fbCredential oauthToken];
NSLog(@"Facebook Access Token: %@", accessToken);
// Add code here to make an API request using the SLRequest class
} else {
NSLog(@"Access not granted");
}
}];
打印出来:
Facebook Access Token: (null)
我被授予访问权限,但令牌为空。我做错了什么?
由于
答案 0 :(得分:4)
我通过续订凭据解决了这个问题。也就是说,在授予对FB的访问权限之后,但在ACAccountCredential的 oauthToken 返回nil的情况下,我们只需拨打ACAccountStore的 renewCredentialsForAccount 。续订凭证,之后令牌有效!
答案 1 :(得分:1)
以下是Apple doc的一些信息:
@property(非原子,保留)ACAccountCredential *凭证 讨论此属性是必需的,必须在之前设置 帐户已保存。出于隐私原因,这家酒店无法进入 帐户保存后。
与您的代码一样,[acc凭证]将返回null
在此处找到类似的帖子:Get Facebook access token from Social.framework(iOS6)
希望这可以提供帮助。