2

I'm currently trying to use an SLRequest to post a status on to facebook this is the code i have:

ACAccountStore *accountStore = [[ACAccountStore alloc] init];
    ACAccountType *accountType = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];
    NSLog(@"0");
    [accountStore requestAccessToAccountsWithType:accountType options:@{ACFacebookAppIdKey : @"00000000000", ACFacebookPermissionsKey : @"publish_stream", ACFacebookAudienceKey : ACFacebookAudienceFriends} completion:^(BOOL granted, NSError *error) {
        if(granted) {
            NSLog(@"1");
            NSArray *accountsArray = [accountStore accountsWithAccountType:accountType];
            NSLog(@"2");
            if ([accountsArray count] > 0) {
                NSLog(@"3");
                ACAccount *facebookAccount = [accountsArray objectAtIndex:0];
                NSLog(@"4");
                SLRequest *facebookRequest = [SLRequest requestForServiceType:SLServiceTypeFacebook
                                                                requestMethod:SLRequestMethodPOST
                                                                          URL:[NSURL URLWithString:@"https://graph.facebook.com/me/feed"]
                                                                   parameters:[NSDictionary dictionaryWithObject:post forKey:@"message"]];
                NSLog(@"5");

                [facebookRequest setAccount:facebookAccount];
                NSLog(@"6");

                [facebookRequest performRequestWithHandler:^(NSData* responseData, NSHTTPURLResponse* urlResponse, NSError* error) {
                    NSLog(@"%@", [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]);
                }];


            }
        }
    }];

however the code i have doesn't want to get past if(granted){ but i can't tell why what I've done isn't working. Any help would be appreciated!

Alex Trott
  • 4,576
  • 4
  • 23
  • 30

2 Answers2

4

In my case, to resolve this, I register the Bundle ID in the properties of my APP on facebook.

Edit your APP on facebook and look for "Select how your app integrates with Facebook" and register the Bundle ID of your project on "iOS Bundle ID" in "Native iOS App".

If not your case, try to read the error message:

if(granted) {
    ...
}
else {
    NSLog([NSString stringWithFormat:@"%@", error.localizedDescription]);
}
Yudmt
  • 421
  • 6
  • 17
  • cheers man! it looks like i hadn't set the facebook side of it up properly thanks for the help. – Alex Trott Sep 24 '12 at 20:12
  • 1
    @Yudmt i have set that .but still not working .what about other option like "iPhone App Store ID" "Facebook Login" and so on ? all are mendetory ?? – Hitarth Dec 25 '12 at 08:11
0

if error.code == 6, then this is the error message that will appear if the user has not signed into Facebook from Settings app.

pkc456
  • 8,350
  • 38
  • 53
  • 109