我需要检索我的系统帐户的Facebook访问令牌,我在设置应用程序中设置。
我知道Social.framework(iOS6)知道我所有的FB帐户信息&我可以使用SLRequest类对Graph API执行API调用,就像在这篇文章http://blogs.captechconsulting.com/blog/eric-stroh/ios-6-tutorial-integrating-facebook-your-applications
中一样但是,我的问题是 - 如何检索我的Facebook系统帐户的访问令牌?
我找到了Twitter https://dev.twitter.com/docs/ios/using-reverse-auth的解决方案,但你可以帮我解决Facebook
答案 0 :(得分:24)
如果您已经知道如何设置帐户存储,请参阅此处的代码,了解如何获取访问令牌:
@property (strong, nonatomic) ACAccountStore *accountStore;
@property (strong, nonatomic) ACAccount *fbAccount;
...
@synthesize accountStore = _accountStore;
@synthesize fbAccount = _fbAccount;
...
// Initialize the account store
self.accountStore = [[ACAccountStore alloc] init];
// Get the Facebook account type for the access request
ACAccountType *fbAccountType = [self.accountStore
accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];
// Request access to the Facebook account with the access info
[self.accountStore requestAccessToAccountsWithType:fbAccountType
options:fbInfo
completion:^(BOOL granted, NSError *error) {
if (granted) {
// If access granted, then get the Facebook account info
NSArray *accounts = [self.accountStore
accountsWithAccountType:fbAccountType];
self.fbAccount = [accounts lastObject];
// Get the access token, could be used in other scenarios
ACAccountCredential *fbCredential = [self.fbAccount 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");
}
}];