Si prega di controllare il mio progetto di esempio. Ti permette di caricare video su Facebook, ma include anche un metodo per ottenere le tue informazioni, dovresti guardare il file ViewController.m
, quello annotato "Nativo" nel controller della scheda.
https://bitbucket.org/danielphillips/fb-video-upload
Sarà necessario importare i quadri Social
e Accounts
a fare quello che vuoi. Si richiede l'accesso all'account Facebook degli utenti dal ACAccountStore
, se si è concesso l'accesso, quindi si utilizza questo account per creare un SLRequest
con i parametri desiderati, qui si desidera l'oggetto grafico "/ me".
Proprietà:
@property (nonatomic, retain) ACAccountStore *accountStore;
@property (nonatomic, retain) ACAccount *facebookAccount;
autenticazione:
- (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);
}
}];
}
Get "me":
- (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);
}];
}
Ho usato il codice superiore il codice la prima volta funziona bene per me. Ma la prossima volta che ho scollegato l'account fb e poi di nuovo collegato, ricevo errori di sotto { error = { code = 190; message = "Il token di accesso è stato invalidato sul dispositivo."; type = OAuthException; }; } – NSCry
@NSIllusion hai risolto il problema del token di accesso qui? – user717452
@ user717452 Quasi risolto, ma non ho trovato nessuna risposta valida a mio avviso. Il mio problema è risolto reimpostando il contenuto e le impostazioni del simulatore. – NSCry