Bitte überprüfen Sie mein Beispielprojekt. Es ermöglicht Ihnen, Video auf Facebook hochladen, aber es enthält auch eine Methode, um Ihre Informationen zu erhalten, sollten Sie sich die Datei ViewController.m
, die eine "Native" in der Registerkarte Controller festgestellt.
https://bitbucket.org/danielphillips/fb-video-upload
Sie müssen die Social
und Accounts
Frameworks importieren zu tun, was Sie wollen. Sie beantragen Zugriff auf den Benutzer Facebook-Konto von der ACAccountStore
, wenn Sie Zugriff gewährt sind, dann verwenden Sie dieses Konto, um eine SLRequest
mit den gewünschten Parametern zu erstellen, hier möchten Sie das Grafikobjekt "/ mich".
Eigenschaften:
@property (nonatomic, retain) ACAccountStore *accountStore;
@property (nonatomic, retain) ACAccount *facebookAccount;
Authentifizieren:
- (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);
}];
}
Ich habe den oberen Code verwendet, der erste Code funktioniert für mich gut. Aber das nächste Mal, als ich den FB-Account entkoppelt und dann wieder verlinkt habe, dann kam ich unter Fehler { error = { code = 190; message = "Das Zugriffstoken wurde auf dem Gerät ungültig gemacht."; type = OAuthException; }; } – NSCry
@NSIllusion haben Sie das Problem des Access-Tokens hier gelöst? – user717452
@ user717452 Fast gelöst, aber keine gute Antwort gefunden, die zu mir verdrahtet aussieht. Mein Problem wurde durch Zurücksetzen des Simulatorinhalts und der Einstellungen gelöst. – NSCry