ACAccountCredential returns null for oauthToken

别等时光非礼了梦想. 提交于 2019-12-12 11:44:07

问题


I am getting access to user's facebook via:

[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");
                                            }
                                        }];

This prints out:

 Facebook Access Token: (null)

I am granted access, but the token is null. What am I doing wrong?

Thanks


回答1:


I've solved the problem by renewing the credentials. That is, after access to FB has been granted, but in the case where ACAccountCredential's oauthToken returns nil, we just call ACAccountStore's renewCredentialsForAccount. Credentials are renewed, and after that the token is valid!




回答2:


Here's some info from Apple doc:

@property(nonatomic, retain) ACAccountCredential *credential Discussion This property is required and must be set before the account is saved. For privacy reasons, this property is inaccessible after the account is saved.

As in your code, [acc credential] will return null

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

Found a similar post here: Get Facebook access token from Social.framework(iOS6)

Hope this can help.



来源:https://stackoverflow.com/questions/17737667/acaccountcredential-returns-null-for-oauthtoken

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!