Ответ 1
Пожалуйста, ознакомьтесь с моим примером. Он позволяет загружать видео на Facebook, но также включает в себя способ получения вашей информации, вы должны посмотреть на файл ViewController.m
, который был отмечен как "Родной" в контроллере табуляции.
https://bitbucket.org/danielphillips/fb-video-upload
Вам нужно будет импортировать фреймворки Social
и Accounts
, чтобы делать то, что вы хотите. Вы запрашиваете доступ к учетной записи пользователей Facebook из ACAccountStore
, если вам предоставлен доступ, то вы используете эту учетную запись для создания SLRequest
с нужными параметрами, здесь вы хотите, чтобы объект графа "/me".
Свойства:
@property (nonatomic, retain) ACAccountStore *accountStore;
@property (nonatomic, retain) ACAccount *facebookAccount;
Аутентифицировать:
- (IBAction)getMeButtonTapped:(id)sender {
if(!_accountStore)
_accountStore = [[ACAccountStore alloc] init];
ACAccountType *facebookTypeAccount = [_accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];
[_accountStore requestAccessToAccountsWithType:facebookTypeAccount
options:@{ACFacebookAppIdKey: @"483616868329082", ACFacebookPermissionsKey: @[@"email"]}
completion:^(BOOL granted, NSError *error) {
if(granted){
NSArray *accounts = [_accountStore accountsWithAccountType:facebookTypeAccount];
_facebookAccount = [accounts lastObject];
NSLog(@"Success");
[self me];
}else{
// ouch
NSLog(@"Fail");
NSLog(@"Error: %@", error);
}
}];
}
Получить "я":
- (void)me{
NSURL *meurl = [NSURL URLWithString:@"https://graph.facebook.com/me"];
SLRequest *merequest = [SLRequest requestForServiceType:SLServiceTypeFacebook
requestMethod:SLRequestMethodGET
URL:meurl
parameters:nil];
merequest.account = _facebookAccount;
[merequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
NSString *meDataString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
NSLog(@"%@", meDataString);
}];
}