ACAccountCredential为oauthToken返回null

时间:2013-07-19 03:31:43

标签: ios objective-c cocoa-touch social-framework acaccount

我可以通过以下方式访问用户的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)

我被授予访问权限,但令牌为空。我做错了什么?

由于

2 个答案:

答案 0 :(得分:4)

我通过续订凭据解决了这个问题。也就是说,在授予对FB的访问权限之后,但在ACAccountCredential的 oauthToken 返回nil的情况下,我们只需拨打ACAccountStore的 renewCredentialsForAccount 。续订凭证,之后令牌有效!

答案 1 :(得分:1)

以下是Apple doc的一些信息:

  

@property(非原子,保留)ACAccountCredential *凭证   讨论此属性是必需的,必须在之前设置   帐户已保存。出于隐私原因,这家酒店无法进入   帐户保存后。

与您的代码一样,[acc凭证]将返回null

供参考,http://developer.apple.com/library/ios/#documentation/Accounts/Reference/ACAccountClassRef/Reference/Reference.html#//apple_ref/doc/uid/TP40011019

在此处找到类似的帖子:Get Facebook access token from Social.framework(iOS6)

希望这可以提供帮助。